どうもイトサル(@itosaru)です。

・Twitter APIで特定のキーワードを含んだツイートを取得したい
・どうやってTwitter APIを呼ぶプログラムを書けばいいか知りたい
この記事ではTwitter API v2を使って指定したキーワードを含んだツイートを取得するプログラムの作成方法についてお伝えします。
Twitterの開発者登録などが終わっていない場合はこちらの記事をご覧ください。

なおTwitter APIを呼び出すプログラム言語はPython使用し、プログラムにはTweepyライブラリを使用します。
PythonとTweepyをまだインストールしていない場合はこちらの記事をご覧ください。

Tweetを取得するプログラムを書く
それでは早速やっていきましょう。
Tweetの取得には
search_recent_tweets()
メソッドを使います。
下のコードをコピーして必要なキー情報をそれぞれ入力します。
書き換えたらファイルを保存しましょう。
import tweepy
#Twitter Deverloper Portalで取得したAPIキーをコーテション('')の間にそれぞれ入れる
API_KEY = 'API Key'
API_KEY_SECRET = 'API Key Secret'
#Twitter Deverloper Portalで取得したベアラートークンをコーテション('')の間に入れる
BEARER_TOKEN = 'Bearer Token'
#Twitter Deverloper Portalで生成したアクセストークンをコーテション('')の間にそれぞれ入れる
ACCESS_TOKEN = 'Access Token'
ACCSESS_TOKEN_SECRET = 'Access Token Secret'
#リファレンスの内容に沿って入力(https://docs.tweepy.org/en/stable/client.html)
client = tweepy.Client(bearer_token = BEARER_TOKEN, consumer_key = API_KEY, consumer_secret = API_KEY_SECRET, access_token = ACCESS_TOKEN, access_token_secret = ACCSESS_TOKEN_SECRET)
QUERY = input("検索するキーワードを入力: ")
#Tweetを取得する上限
MAX_RESULTS = 10
tweets = client.search_recent_tweets(query = QUERY, max_results = MAX_RESULTS)
tweets_data = tweets.data
if tweets_data != None:
for i, tweet in enumerate(tweets_data):
print("No:" + str(i+1))
print("tweet.text: " + tweet.text)
print("\n")
else:
print("該当がありませんでした")
動作確認をする①
プログラムを実行すると「検索するキーワードを入力:」のメッセージが表示されます。
好きなキーワードを入力して[Enter]キーを入力しましょう。
すると

キーワードを含んだツイートが取得できましたね!
『search_recent_tweets』は初期値だと”Tweet ID”と”Tweet Text”を返します。
リクエストパラメータを追加する
ツイートの投稿時間やいいねの数などを取得したい場合はリクエストパラメータに
tweet_fields
を追加しましょう。
tweet_fieldsにリストで欲しい情報を文字列で記述することでリターンデータにその情報を含めることができます。
上のプログラムを下のものに変更して保存します。
import tweepy
#Twitter Deverloper Portalで取得したAPIキーをコーテション('')の間にそれぞれ入れる
API_KEY = 'API Key'
API_KEY_SECRET = 'API Key Secret'
#Twitter Deverloper Portalで取得したベアラートークンをコーテション('')の間に入れる
BEARER_TOKEN = 'Bearer Token'
#Twitter Deverloper Portalで生成したアクセストークンをコーテション('')の間にそれぞれ入れる
ACCESS_TOKEN = 'Access Token'
ACCSESS_TOKEN_SECRET = 'Access Token Secret'
#リファレンスの内容に沿って入力(https://docs.tweepy.org/en/stable/client.html)
client = tweepy.Client(bearer_token = BEARER_TOKEN, consumer_key = API_KEY, consumer_secret = API_KEY_SECRET, access_token = ACCESS_TOKEN, access_token_secret = ACCSESS_TOKEN_SECRET)
QUERY = input("検索するキーワードを入力: ")
#Tweetを取得する上限
MAX_RESULTS = 10
tweets = client.search_recent_tweets(query = QUERY, tweet_fields = ["public_metrics","created_at"], max_results = MAX_RESULTS)
tweets_data = tweets.data
if tweets_data != None:
for i, tweet in enumerate(tweets_data):
print("No:" + str(i+1))
print("tweet.text: " + tweet.text)
print("tweet.created_at: " + str(tweet.created_at))
print("like_count: " + str(tweets_data[i].public_metrics['like_count']))
print("\n")
else:
print("該当がありませんでした")
動作確認をする②
改めてプログラムを起動してキーワードを入力してみましょう。

Tweetの投稿時間といいねの数が表示されました!
実際のTweet画面のいいねの数を確認してみると数があっていることがわかります。

しかし時間は協定世界時(UTC)で取得されていたため日本時間とずれがありました。時間を処理で使う場合は日本時間への変換が必要ですね。

まとめ
今回はキーワードに合致したツイートを取得するプログラムを作成しました。
あたらめて今回の内容を振り返ります。
- キーワードに合致するツイートを取得するメソッド:『search_recent_tweets()』
→初期値だと「Tweet id」と「Tweet text」がかえってくる - ツイートの投稿時間など付帯情報が欲しい場合:「tweet_fields」をリクエストに追加する
追加できるパラメータについてはTwitter Developer公式サイトのリファレンスに記載がありますので、どんな情報が取れるかはこちらを確認しましょう。
》Developer Platform Documentation(英語)
またツイートデータは1度に100件まで取得することができます。
100件以上のデータを取得したい場合はnext_tokenを使った処理が必要です。
next_tokenについてはこちらの記事をご覧ください。

Pythonの勉強におすすめな本
Pythonについて勉強したい!という方は
Python 1年生 体験してわかる!会話でまなべる!プログラミングのしくみ
の本がおすすめです。
前ページがカラー印刷で、かわいらしいどうぶつ2人の会話形式で読みやすいです。
内容はPythonの特徴からはじまり、プログラミングの方法、そして簡単な人工知能を作るまでを解説してくれます。
またこの本の続編である、「Python2年生」も発売されているので合わせてどうぞ!
- Python2年生 データ分析のしくみ 体験してわかる!会話でまなべる!
- Python2年生 スクレイピングのしくみ 体験してわかる!会話でまなべる!
コメント