好きな子のツイートを収集している。

倫理的にいいのかどうかはひとまず闇に沈めた。GitHubリポジトリ

目的・背景

WebAPIで遊んでみるのが目的。選んだのはTwitter。何か作ってみよう⇒好きな子のツイートを収集する。

使ったもの

さくらのVPS

以前から借りてるもの。ここで動かす。CentOS6。

Python

何度か触ったことがあるので環境構築っていう点で入りやすいのと、そのままスクリプトとして実行できるので。Python3。

SQLite

軽量なデータベース。Pythonに標準でライブラリがあるので。

VirtualBox(Ubuntu)

VPSでごちゃごちゃ試したりしたくないので、仮想的にLinuxの環境を作る。

設計・実装

  1. PythonでTwitterAPIを叩いて特定のユーザーのタイムラインを取得する。ライブラリはRequests-OAuthlib。
  2. 取得したツイートをDB(SQLite)にぶち込む。
  3. 上記Pythonスクリプトをcronで定期で実行する。

今のところ5分毎に実行されてると思う。取得ツイートは最新から20ツイート分。重複したものは書き込まれない。対象が5分以内に20ツイート以上ツイートするとその分は抜ける。ツイ消しとかも対応できない。

感想

結局1か月ぐらいちょっとずつやってたので、環境構築とかなにしたのかあまり覚えていない。実装も思いついた単純なものにしていて、いろいろ考慮する部分はあるんだろうけどまあこれでいいや。APIで遊んでみるっていう当初の目的は早い段階で達成してたんだけど、せっかくだから何か作ってみようと思った。収集したツイートの使い道は特にないし、何か使おうと思ったら設計からちゃんと考えないといけない。たぶん何にも使わない。対象がツイートしたときにそのツイートを取得とかってできるんだっけ。と思いながら、Twitterクライアントのことを考えると普通にできそう。

技術的なブログを書いてみようと思ったけど、これじゃただの日記だwでもまたこういう日記を書けたらいいなと思う。

難しかったこと

  • PythonSQL文を実行するところ。テーブルの列に連番をもたせていて、insertするときの扱いがなかなかできなかった。
  • JSONの扱い方。いまだによくわかってない。

参考

数えきれない。インターネットの海、最高!