全Tweetの1%と言われるPublic streamsのsampleを受信してみます。
OAuthやらStreamやら、どう実装するかなーと調べてみるとRequests: 人間のためのHTTP があれば十分なことがわかったし、親切なサンプルコードも書かれてたのであっさり実装できてしまった。
import json import requests from requests_oauthlib import OAuth1 def main(): _auth = OAuth1( API_KEY, API_SECRET, ACCESS_TOKEN, ACCESS_SECRET ) _stream = requests.get( "https://stream.twitter.com/1.1/statuses/sample.json?language=ja", auth=_auth, stream=True, ) for _line in _stream.iter_lines(): _doc = json.loads(_line.decode("utf-8")) print(json.dumps(_doc, ensure_ascii=False, indent=2)) if __name__ == '__main__': main()
日本語のツイートだけ取得したかったのでlanguage=jaを追加しています。Requests便利すぎ。