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


# 注意
**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で大量に取得し、データ分析を試みる その１
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