from tweepy import Stream
from tweepy import OAuthHandler
from tweepy.streaming import StreamListener
import json
from pprint import pprint
data_file = open('twitter.json')
data = json.load(data_file)
##Json file with all the ckey, csecret, atoken, and asecret
pprint(data)
#consumer key, consumer secret, access token, access secret.
ckey = data["ckey"]
csecret = data["csecret"]
atoken = data["atoken"]
asecret = data["asecret"]
class listener(StreamListener):
def on_data(self, data):
all_data = json.loads(data)
tweet = all_data["text"]
username = all_data["user"]["screen_name"]
print((username,tweet))
return True
def on_error(self, status):
print (status)
auth = OAuthHandler(ckey, csecret)
auth.set_access_token(atoken, asecret)
上記のコードはすべて、Twitter API にアクセスする際の標準です。ただし、twitter から取得したツイートを .txt ファイルに転送する必要があります。以下のコードを使用してみました twitterStream = Stream(auth, listener())
fid = open("cats based tweets.txt","w")
for tweet in twitterStream.filter(track=[cats]):
fid.write(tweet)
fid.close()
キーワード「cats」を含むすべての Twitter ツイート/再投稿を検索するつもりです。ただし、すべてのツイートを含む txt ファイルも書き込むことになっていますが、そうではありません。誰でも私がそれを修正する必要があることを教えてもらえますか.
編集:皆さんが書いたコードを使用しましたが、すべてのツイートが返されるわけではありません。5または6のように出力され、エラーが表示されます
RuntimeError: No active exception to reraise
が表示されますが、その理由はわかりません。なぜこれが発生するのでしょうか。