概要
Pythonを使ってツイッターの分析を行いたいと思ったため色々調べた結果を本記事にまとめておく。 このトピックではツイッターAPIとTweepyを用いてつぶやきの情報のうち
- ユーザー名
- ツイート内容
を取得します。
Tweepyとは?
ツイッターAPIをPythonから簡単に呼び出せるようにしたライブラリです。
APIリファレンス — tweepy 3.6.0 ドキュメント
Tweepyに限らないがツイッターAPIで開発を行いたい場合、あらかじめ以下から開発用キーを取得する必要がある。
Docs home | Twitter Developer | Docs | Twitter Developer
使い方
今回はツイッターのタイムライン(ツイッターを一番最初に開いた時に出てくる画面)のツイートを取得してユーザーとツイート内容を表示しようと思います。
最初4行はご自分で取得したAPIキーを使用してください。
import tweepy import json def main(): CONSUMER_KEY ='xxxxxx' CONSUMER_SECRET='xxxxxx' ACCESS_TOKEN = 'xxxxxx' ACCESS_SECERET = 'xxxxxx' auth=tweepy.OAuthHandler(CONSUMER_KEY,CONSUMER_SECRET) auth.set_access_token(ACCESS_TOKEN,ACCESS_SECERET) tweepy=tweepy.API(auth) search_results=tweepy.home_timeline() for status in search_results: tweet_id=status.id try: print("----------------------") print("||USER||") print(status.user.screen_name) print("||WEET||") print(status.text) except: print("err") pass if __name__ == '__main__': main()
解説
home_timeline
メソッドでタイムラインのツイートを取得します。
デフォルトでは20件ですが、count引数を設定することで変更可能です。結果はsearch_resultに渡していますが、これはStatusと呼ばれるオブジェクトのリストなっています。 このStatusごとにユーザー情報とツイートの情報を取得します。
- ツイートの情報はStatusオブジェクトのtext属性から取得できます。
- ユーザーについてはStatusオブジェクトのユーザー属性にユーザーオブジェクトが格納されているので、その中のscreen_name属性を取得するようにします。screen_nameとはツイッターでよく見かける@から始まるユーザー名です(@は表示されません。)
以上、tweepyを使ってのツイッター取得でした。
追記
ちなみにつぶやきのその他の情報は以下のようにとってこれる。
項目 | 記述 |
---|---|
画像(画像のURL) | <ステータスオブジェクト>.extended_entities['media'][0]['media_url'] |
退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング
- 作者:Al Sweigart
- 発売日: 2017/06/03
- メディア: 単行本(ソフトカバー)