tutorial secret how from examples example español data python twitter tweepy twitter-streaming-api

python - secret - tweepy se detiene después de unas horas



twitter python (2)

Intenta agregar un método on_disconnect a tu clase. Podría ser que Twitter te esté desconectando (no es un error, tampoco es un tiempo de espera) y no manejas esto. Puede manejar diferentes errores de Twitter de forma diferente, si lo desea.

def on_disconnect(self, notice): """Called when twitter sends a disconnect notice Disconnect codes are listed here: https://dev.twitter.com/docs/streaming-apis/messages#Disconnect_messages_disconnect """ return

Consulte el módulo de streaming de tweepy para obtener más información.

También puede intentar habilitar las advertencias de bloqueo en su streamer.filter() . A continuación se encuentran todas las opciones y sus valores predeterminados de la fuente Tweepy:

def filter(self, follow=None, track=None, async=False, locations=None, stall_warnings=False, languages=None, encoding=''utf8''):

Yo uso tweepy para transmitir algunos tweets. Este es mi procedimiento:

import tweepy import json consumer_key = "***" consumer_secret = "***" access_token_key="***" access_token_secret="***" auth1 = tweepy.OAuthHandler(consumer_key, consumer_secret) auth1.set_access_token(access_token_key, access_token_secret) api = tweepy.API(auth1) class StreamListener(tweepy.StreamListener): def on_status(self, status): try: print status.text except Exception, e: print ''Encountered Exception Tweet:'', e pass return True def on_error(self, status_code): print ''Encountered error with status code:'' + repr(status_code) return True def on_data(self, data): if ''in_reply_to_status_id'' in data: status = tweepy.Status.parse(self.api, json.loads(data)) if self.on_status(status) is False: return True elif ''delete'' in data: delete = json.loads(data)[''delete''][''status''] if self.on_delete(delete[''id''], delete[''user_id'']) is False: return True elif ''limit'' in data: if self.on_limit(json.loads(data)[''limit''][''track'']) is False: return True return True def on_timeout(self): print ''Timeout...'' return True l = StreamListener() streamer = tweepy.Stream(auth=auth1, listener=l, timeout=36000000) setTerms = [''enbrel''] streamer.filter(follow=None,track = setTerms)

Después de dos / tres horas, este procedimiento se detiene. No hay error de señal, tiempo de espera, etc. Simplemente no recibe más tweet. ¿Dónde estoy haciendo mal?


Es posible que desee iniciar la API con un tiempo de espera para comenzar con

api = tweepy.API(auth1,timeout=60)