2015-01-24 16 views
5

Ich habe ein funktionierendes Skript, das erfolgreich Tweets sammelt, die "stackoverflow" erwähnen. Ich möchte jedoch das Skript in iPython ausführen (anstatt eine separate .py-Datei zu verwalten). Im Idealfall möchte ich nur Ipyb-Datei öffnen, wählen Sie alle ausführen, und lassen Sie es für eine Woche oder so laufen (nicht schließen Sie meinen Laptop natürlich) und im Ergebnis habe ich eine .json-Datei mit einer Woche im Wert von Tweets. HierWie speichere ich einen Tweepy-Twitter-Stream in eine Datei?

ist das, was ich bisher:

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"]) 

Antwort

5

den folgenden Code zu Ihrem vorhandenen Code hinzu. 'geholt_tweets.txt' ist der Name der Datei, in der die Tweets gespeichert werden sollen, die in 'a' (Append-Modus) geöffnet ist.

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 
2

Sie können es mit Umleitung in eine Datei ausgegeben

python twitter_streaming.py > twitter_data.txt 

zum Anhängen Verwendung >>

Datei
Verwandte Themen