我有一个工作脚本,可以成功收集提及" stackoverflow"的推文。但是,我想在iPython中运行脚本(而不是执行一个单独的.py文件)。理想情况下,我只想打开它ipyb文件,选择全部运行,并让它运行一周左右(当然不关闭我的笔记本电脑),结果我有一个周价值的.json文件鸣叫。
这是我到目前为止所做的:
from tweepy import Stream
from tweepy import OAuthHandler
from tweepy.streaming import StreamListener
access_token = "x"
access_token_secret = "x"
consumer_key = "x"
consumer_secret = "x"
# file name that you want to open is the second argument
save_file = open('data.json', 'a')
class listener(StreamListener):
def on_data(self, data):
print(data)
return True
def on_error(self, status):
print(status)
auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
twitterStream = Stream(auth, listener())
twitterStream.filter(track=["stackoverflow"])
答案 0 :(得分:7)
将以下代码添加到现有代码中。 'fetched_tweets.txt'是您要在其中保存以'a'(追加模式)打开的推文的文件名。
class StdOutListener(StreamListener):
def on_data(self, data):
#print data
with open('fetched_tweets.txt','a') as tf:
tf.write(data)
return True
def on_error(self, status):
print status
答案 1 :(得分:4)
您可以通过将输出重定向到文件来完成此操作:
终端/ CMD中的只需输入python twitter_streaming.py > twitter_data.txt
要附加到现有文件,请使用>>
而不是>
。