注意
**1回に最大100件までしか取得できないので、100件以上の場合は、次ページをとりなおすか、**素直にStreaming APIを使わないとダメでした。。。
User Streams APIは2018年6月20日廃止予定とのこと
http://www.itmedia.co.jp/news/articles/1712/20/news101.html
前提
- twitterのAPIを使って、あるキーワードに関するツイート件数を取得したい
- 実装はpythonを想定
概要
検索のREST APIがあるので、これを定期的にたたくのが一番楽そう- API制限は、450req/15min。1日1回の更新頻度でよければ 最大約4万キーワード分まで取得可能
- それ以上の頻度、キーワード数でとりたい場合はStreaming APIを使うか検討
REST APIを使う
https://api.twitter.com/1.1/search/tweets.json を使えば取得可能
公式APIリファレンス
https://dev.twitter.com/rest/public/search
https://dev.twitter.com/rest/reference/get/search/tweets
日本語資料
https://syncer.jp/twitter-api-matome/get/search/tweets
- $.search_metadata.count が検索件数
-
期間指定が可能で、過去にさかのぼって取得できる(最大1週間分までだった) - 15分あたり450リクエストまでの制限あり
- 認証はOAuth
取得できるキーワード数について
単純に考えると、15分単位で450キーワード分取得可能取得頻度が1日単位で良いのだったら、1000キーワード以上のキーワード検索数を取得するのも可能(最大450 * ((60 * 24) /15) = 43200リクエスト)過去の分については、レスポンスのsearch_metadata.countを使わずに、指定期間を長めに指定して自前で件数をカウントするのも可能- ツイート数が100件以内のキーワードならこれでいけるが、100件以上のキーワードは次ページを再検索しないと取れない。
Pythonを用いてTwitterの検索を行う - Qiita http://qiita.com/mima_ita/items/ba59a18440790b12d97e
pythonでの取得方法
twitter用のライブラリもいくつかあるようだが、OAuthライブラリだけ使って自前で実装するほうがシンプルでよさそう。
スタバのTwitterデータをpythonで大量に取得し、データ分析を試みる その1
http://qiita.com/kenmatsu4/items/23768cbe32fe381d54a2
Python で Twitter API にアクセス
http://qiita.com/yubais/items/dd143fe608ccad8e9f85
Streams APIを使う
User Streams APIは2018年6月20日廃止予定
http://www.itmedia.co.jp/news/articles/1712/20/news101.html
大量かつリアルタイムのデータが欲しければ、Steaming APIを使うことで、現在の全ツイート取得が可能になる。
- 一般のアカウントで使用できるのはサンプリングされたデータなので、正しい件数は取得できない
- 過去データを取得できない
- データ量が多いのでREST APIより少し扱いが難しそう
参考
PythonでStreaming APIを使用して特定のキーワードを含んだツイートを取得しつづける - Qiita http://qiita.com/mima_ita/items/ecdf7de2fe619378beee
Twitter Streaming APIについてのメモ
http://lealog.hateblo.jp/entry/2013/03/10/100845