LoginSignup
45
40

More than 5 years have passed since last update.

twitterのAPIを使って、あるキーワードに関するツイート件数を取得する

Last updated at Posted at 2016-02-13

注意

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

45
40
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
45
40