たくさん寝太郎の寝床

料理とITと皿回しが好きなオタクのブログ

PythonでTwitterの話 part.2

こんにちは、たくさん寝太郎です。

最近バイトやゼミで精神が疲弊していますがTRUST IN ETERNITYを聴いて頑張っています。



さて、前回はtokenとkeyを発行しPythontweetしてみました。

今回はPythonで検索してみようと思います。

検索
#coding: utf-8

from requests_oauthlib import OAuth1Session
import json
import settings


session = settings.create_oauth_session(settings.oauth_key_dict)

url = 'https://api.twitter.com/1.1/search/tweets.json'
params = {"q":u"search_words","count":20,"until":"2018-10-19_JST"}
res = session.get(url, params = params)

res_text = json.loads(res.text)

count_number = 0

for tweet in res_text['statuses']:
    count_number = count_number + 1
    print(str(tweet['id'] )+ ' num= '+ str(count_number).zfill(3) + ' ' +str(tweet['created_at']))
    print (tweet['text'])

tweetするときはparamsにツイート内容、reqでpostにparamsを渡してtweetしていましたが、検索する場合はparamsに検索内容を、resでgetにparamsを渡します。


Enterprise search APIs — Twitter Developers

詳しい内容は上のリンクに書いてますが、簡単に言うと"q"が検索内容・"lang"が言語・"result_type"がrepresented by recent or popular Tweets, or even a mix of both(最近か人気のツイートで代表的なもの、若しくは両方合わせたもの)・"count"は何件まで検索するか・"until"は何日のツイートまで表示するかです。


resにはjson文字列が入っているので、json.loads(res.text)で辞書に変換します。
あとはfor文で良い感じに出力します。

試しに@is_integraiで検索してみましょう。

f:id:kaworu_mk6:20181019055433p:plain

直近の私宛のリプライが無事表示されました。


次回は検索した内容を少し処理してみたいと思います。