méthode tweepy de stream.filter () ne fonctionne pas correctement
Question
J'ai quelques problèmes avec l'api tweepy.
Je suis tryin d'écrire une petite application qui me fait un flux de statuts d'un utilisateur (plus de minerai), mais on serait bien de commencer par; -)
: mon code est comme ça:
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')
StreamWatcherListener J'ai une méthode « on_status » qui imprime le texte d'un statut, chaque fois qu'un nouveau arrive (tout semble fonctionner, lorsque je tente stream.sample () au lieu de stream.filter ())
l'ID donné est mon testaccount, donc chaque fois que je tweete que je devrais obtenir une réponse dans la console .... mais rien ne se passe.
lorsque je tente
curl -d @following http://stream.twitter.com/1/statuses/filter.json -uAnyTwitterUser:Password
dans le terminal que je pouvais trouver dans le twitter api, tout fonctionne bien.
Alors peut-être que je fais une mauvaise utilisation du filtre () - méthode
?suggestions?
-Andy
La solution
Je l'ai trouvé moi-même
la méthode de stream.filter()
a besoin d'un tableau
donc je devais le code
stream.filter(['1234567'])
et le tour est joué
Autres conseils
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)
Ici, j'utilise le paramètre async, il exécute chaque flux sur un thread différent. Reportez-vous cette lien pour la documentation ou plus de détails.