幻魔ナイトブログ

主に絵、音楽、プログラミングなどについて書きます。

Tweepyでツイート情報を取得する

f:id:MahiroN:20200823135552p:plain:w560

概要

Pythonを使ってツイッターの分析を行いたいと思ったため色々調べた結果を本記事にまとめておく。 このトピックではツイッターAPIとTweepyを用いてつぶやきの情報のうち

  • ユーザー名
  • ツイート内容

を取得します。

Tweepyとは?

ツイッターAPIPythonから簡単に呼び出せるようにしたライブラリです。

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']

お問合わせはこちら