如何将tweepy Twitter流保存到文件中?

时间:2015-01-24 20:51:13

标签: python twitter tweepy

我有一个工作脚本,可以成功收集提及" 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"])

2 个答案:

答案 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

要附加到现有文件,请使用>>而不是>