Método stream.filter tweepy () no funciona correctamente
Pregunta
Tengo algunos problemas con la API tweepy.
Sólo estoy tratando de escribir una pequeña aplicación que me pone una corriente de estados de un usuario (el mineral más), pero estaría bien para empezar; -)
Ahora: mi código es así:
def main():
config = ConfigParser.ConfigParser()
config.read('twitter.cfg')
username = config.get('Twitter', 'username')
password = config.get('Twitter', 'password')
listener = StreamWatcherListener()
stream = tweepy.Stream(username, password, listener, timeout=None)
stream.filter('132897940')
en StreamWatcherListener tengo un método "on_status" que imprime el texto de un estado, cada vez que llega una nueva (todo parece funcionar, cuando intento stream.sample () en lugar de stream.filter ())
Identificación del dado es mi testaccount, así que cuando Pio debo obtener alguna respuesta en la consola .... pero no pasa nada.
cuando intento
curl -d @following http://stream.twitter.com/1/statuses/filter.json -uAnyTwitterUser:Password
en el terminal como se pude encontrar en la API de Twitter, todo funciona bien.
Así que tal vez hago uso incorrecto del filtro () - Método
?alguna sugerencia?
-Andy
Solución
Lo encontré a mí mismo
el método stream.filter()
necesita un array
así que tuve con el código
stream.filter(['1234567'])
et voilà
Otros consejos
class TweetListener(StreamListener):
def on_status(self,status):
print "TWEET ARRIVED!!!"
print "Tweet Text : %s" % status.text
print "Author's name : %s" % status.author.screen_name
print "Time of creation : %s" % status.created_at
print "Source of Tweet : %s" % status.source
time.sleep(10)
return True
def on_error(self, status):
print status
if status == 420:
print "Too soon reconnected, Exiting!!"
return False
sys.exit()
def search_tweets():
twitterStream = Stream(connect().auth, TweetListener())
twitterStream.filter(track=['Cricket','Maths','Army','Sports'],languages = ["en"],async=True)
Aquí usa el parámetro asíncrono, se ejecuta cada corriente en un hilo diferente. Consulte este enlace para la documentación o más detalles.