Actualmente estoy teniendo problemas para obtener código de ejemplo para usar tweepy para acceder a la API de transmisión de Twitter para que se ejecute correctamente (err ... o al menos cómo espero que se ejecute). Estoy usando un clon reciente de tweepy de GitHub (etiquetado versión 1.9) y Python 2.7.1.Uso de tweepy para acceder a la API de transmisión de Twitter
he tratado código de ejemplo de tres fuentes, en cada caso, el uso de "Twitter" como un término de prueba para el seguimiento:
O'Rilley Respuestas código: el blog How to Capture Tweets in Real-time with Twitter's Streaming API
Andrew Robinson : Using Tweepy to access the Twitter Stream
ejemplos Tweepy repositorio en GitHub (que, como Andrew Robinson ha hecho, se puede modificar fácilmente para permitir la autenticación OAuth): streamwatcher.py
En los tres casos, obtengo el mismo resultado: la autenticación es exitosa, no se producen errores y el ciclo principal del programa parece ejecutarse sin problemas. Veo que el uso de la red aumenta a unos 200 KB/s, y el proceso de python salta a casi el 100% de uso de la CPU, por lo que creo que se están recibiendo datos. Sin embargo, nada se envía a la consola.
Sospecho que la clase Stream de tweepy no llama al método de devolución de llamada personalizada por algún motivo. He intentado reescribir los métodos de devolución de llamada en cada ejemplo para producir la salida cada vez que se llaman a, lo que parece confirmar esto. Este es un bit muy simple de código de prueba basados en el blog de Andrew Robinson (con llaves de mi aplicación eliminada, por supuesto):
# -*- coding: utf-8 -*-
import tweepy
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)
class StreamListener(tweepy.StreamListener):
def on_status(self, tweet):
print 'Ran on_status'
def on_error(self, status_code):
print 'Error: ' + repr(status_code)
return False
def on_data(self, data):
print 'Ok, this is actually running'
l = StreamListener()
streamer = tweepy.Stream(auth=auth1, listener=l)
#setTerms = ['hello', 'goodbye', 'goodnight', 'good morning']
setTerms = ['twitter']
streamer.filter(track = setTerms)
¿Qué estoy haciendo mal?
Gracias !!! Trabajado como un encanto. Además, gracias por la sugerencia de consultar la lista de problemas en GitHub, eso es probablemente lo que realmente necesitaba saber ;-) –