¿Cómo guardar una stream de Twitter tweepy en un archivo?

Tengo un script de trabajo que reúne con éxito los tweets que mencionan “stackoverflow”. Sin embargo, quiero ejecutar el script en iPython (en lugar de ejecutar un archivo .py por separado). Idealmente, solo quiero abrir el archivo ipyb, seleccionar ejecutar todo, y dejar que se ejecute durante una semana aproximadamente (sin cerrar mi computadora portátil, por supuesto) y como resultado tengo un archivo .json con el valor de una semana de tweets.

Aquí está lo que tengo hasta ahora:

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

Agregue el siguiente código a su código existente. ‘fetched_tweets.txt’ es el nombre del archivo en el que desea guardar los tweets que se abren en ‘a’ (modo de adición).

 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 

Puedes hacerlo redireccionando la salida a un archivo:

en la Terminal / CMD simplemente escriba python twitter_streaming.py > twitter_data.txt

para agregar a un archivo existente use >> lugar de > .