Twitterのツイートからキーワード指定で画像をダウンロードしまくるバッチをつくりました
7月22日は矢澤にこさんの誕生日でした。
おめでとうございます。
記念に「Nico」というTwitterのツイートから指定したキーワードをつぶやいているツイートの画像URLを保存するバッチを書いてみました。
https://github.com/AKB428/Nico
java製でWindows,OSX,Linuxで稼働確認済。
簡単な仕様は以下
- TwitterのStreaming APIを使用
- 重複したURL画像は保存しない
- キュー処理のためDBを使用
- プログラミングのポータビリティ性を高めるためH2DBを使用
- SQLiteはマルチスレッド書き込みが無理だったので断念
- テーブル更新はINSERT、DELETEのみで行ロックはしない
将来的に実装する予定の機能は以下
- DBはMariaDBとHadoop系にも対応
- 現在はTwitter公式にアップロードした画像しかダウンロードしないがついっぷるとかにも対応する
- 1ディレクトリで複数java実行起動できるようにテーブル構成を賢くする
- Java8のコードも書きたいがポータビリティ性を考えるとJava7対応も必要なのでコードを2つにわけるとか
実装する上ではまったポイントは以下
- SQLiteが複数スレッドから書き込みできずテーブルロックエラーになるo(`ω´*)oプンスカプンスカ!!
- H2DBは大文字小文字を区別しないがテーブル名を小文字で作成して、テーブル名存在チェックを大文字でやるとヒットしなくなる。
コンソールから起動するとこんな画面になり、ひっきりなしにTwitterのStreamingAPIからデータを取得します。
7月22日は「ラブライブ」という文字列でバッチを動かしていましたが7800枚の画像が収集されました。
NHKのつぶやきビックデータを提供しているNTT DATAのTiwitterはみんながあこがれるTwitter Streaming Firehose APIですがこれって有償契約が必要で個人じゃハードル高いんですよね。
なので個人レベルでTwitterを解析する一番近道は公開されているStreaming APIを使い倒すことだと思います。
がんばって「つぶやきビックデータ」を超えるサービスを作りたいですね。
Twitter API ポケットリファレンス (POCKET REFERENCE)
- 作者: 山本 裕介
- 出版社/メーカー: 技術評論社
- 発売日: 2011/07/15
- メディア: 単行本(ソフトカバー)
- 購入: 3人 クリック: 247回
- この商品を含むブログ (43件) を見る
ラブライブ! School idol diary ~矢澤にこ~
- 作者: 公野櫻子,室田雄平,音乃夏,清瀬赤目
- 出版社/メーカー: アスキー・メディアワークス
- 発売日: 2013/12/27
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (5件) を見る