PythonでTwitter APIを使わずにTweetを取得する
データ分析をしたり、コーパスを作成する際に、Tweetを取得することはよくあると思います。しかし、Twitterの公式APIは制限がやたら厳しく、使いやすいとは言えません。今回紹介する Twitter Scraper はTwitterの公式APIを使わずにTweetを取得することができるPythonライブラリです。APIの制限がなく、非常に高速に動作するのが特徴です。
ちなみに、Twitter Scraper の作者は requests を作った Kenneth Reitz です。
インストール
まずは、pipenv
を使ってtwitter-scraper
をインストールします。
このとき、仮想環境のPythonバージョンは3.6以上にしておいてください。
なぜなら、twitter-scraper
の中ではPython 3.6から追加されたfstringを使っているからです。
そのため、Python 3.6 未満の環境だと、パッケージをインポートした際に例外が発生してしまいます。
$ pipenv install twitter-scraper Installing twitter-scraper... Adding twitter-scraper to Pipfile's [packages]... Pipfile.lock not found, creating... Locking [dev-packages] dependencies... Locking [packages] dependencies... Updated Pipfile.lock (776465)! Installing dependencies from Pipfile.lock (776465)... 🐍 ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 19/19 — 00:00:05
使い方
インストールが完了したら、Pythonインタプリタを起動します。
インタプリタを起動したら、get_tweets
関数をインポートします。
get_tweets
関数にユーザ名を指定することで、Tweetを取得することができます。
>>> from twitter_scraper import get_tweets >>> >>> for tweet in get_tweets('kennethreitz', pages=1): >>> print(tweet['text']) P.S. your API is a user interface OPINIONS ...
pages
パラメータを指定することで過去のTweetにさかのぼって取得することができます。
「これで指定したユーザのTweetをすべて取得できる!」と思いきや、数百件取得するとそれ以上は取れなくなります。
とはいえ、Twitter APIの制限を気にせず使えるので、有効活用していきましょう。