Twitter API v1.1でのリアルタイムツイート取得ができなくなっているので、この記事の方法は使えない。リアルタイムにツイートを取得するときは、PythonとTwitter API v2でリアルタイムにツイートを取得するのようにv2を使う。(2022.12.30追記)
TweepyはTwitter APIを利用してツイート検索などを行えるPythonライブラリ。バージョンが3から4になって仕様がけっこう変わっている。今回はTweepyの最新バージョン4でリアルタイムツイートを収集してみる。
環境
WSL2(Ubuntu20.04)。
$ lsb_release -dr Description: Ubuntu 20.04.3 LTS Release: 20.04 $ python3 -V Python 3.8.10
Twitter APIの利用に必要なAPIキーやトークンなどが未取得であれば、Twitterの開発者向けサイト(Developer Platform)で取得しておく。
Tweepyのインストール
Tweepyはpipでインストールできる。
$ pip3 install tweepy $ pip3 show tweepy Name: tweepy Version: 4.4.0 Summary: Twitter library for Python ...
Tweepyでリアルタイムにツイートを取得する
Tweepyバージョン3でリアルタイムにツイートを取得するには、StreamListenerを継承するクラスのインスタンスをStreamオブジェクトにわたすようにしていたが、バージョン4ではStreamListenerが廃止されている。TweepyドキュメントのFrequently Asked QuestionsにStreamListener廃止についての記載がある。
Tweepyバージョン4でリアルタイムにツイートを取得するには、Streamを継承するクラスを作成し、そのインスタンスを使う。以下のコードではリアルタイムに日本語ツイートのランダムサンプリングを表示する。
import tweepy # Twitter APIの認証情報 # Twitterの開発者向けのページで取得したキーとトークンを使う CONSUMER_KEY = 'Consumer Key' CONSUMER_SECRET = 'Consumer Secret' ACCESS_TOKEN = 'Access Token' ACCESS_TOKEN_SECRET = 'Access Token Secret' class TwStream(tweepy.Stream): def on_status(self, status): # status(APIで取得できるデータ)を受け取ったときにon_statusが実行される print('-------------------------') # スクリーンネームとツイートを表示 print(f'@{status.author.screen_name} {status.text}') def main(): twstream = TwStream( CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET ) # 日本語ツイートに限定してランダムサンプリングを取得 twstream.sample(languages=['ja']) if __name__ == '__main__': main()
0 件のコメント:
コメントを投稿