Streaming-API mit Tweepy gibt nur den vorletzten Tweet und NICHT den unmittelbar letzten Tweet zurück
Ich bin nicht nur für Python, sondern auch für die Programmierung neu, daher würde ich mich sehr über Ihre Hilfe freuen!
Ich versuche, mithilfe von Tweepy alle Tweets der Twitter-Streaming-API zu filtern.
Ich habe nach Benutzer-ID gefiltert und bestätigt, dass Tweets in Echtzeit gesammelt werden.
JEDOCHEs scheint, dass nur dievorletzte Tweet wird im Gegensatz zum neuesten Tweet in Echtzeit erfasst.
Könnt ihr helfen?
<code>import tweepy import webbrowser import time import sys consumer_key = 'xyz' consumer_secret = 'zyx' ## Getting access key and secret auth = tweepy.OAuthHandler(consumer_key, consumer_secret) auth_url = auth.get_authorization_url() print 'From your browser, please click AUTHORIZE APP and then copy the unique PIN: ' webbrowser.open(auth_url) verifier = raw_input('PIN: ').strip() auth.get_access_token(verifier) access_key = auth.access_token.key access_secret = auth.access_token.secret ## Authorizing account privileges auth.set_access_token(access_key, access_secret) ## Get the local time localtime = time.asctime( time.localtime(time.time()) ) ## Status changes api = tweepy.API(auth) api.update_status('It worked - Current time is %s' % localtime) print 'It worked - now go check your status!' ## Filtering the firehose user = [] print 'Follow tweets from which user ID?' handle = raw_input(">") user.append(handle) keywords = [] print 'What keywords do you want to track? Separate with commas.' key = raw_input(">") keywords.append(key) class CustomStreamListener(tweepy.StreamListener): def on_status(self, status): # We'll simply print some values in a tab-delimited format # suitable for capturing to a flat file but you could opt # store them elsewhere, retweet select statuses, etc. try: print "%s\t%s\t%s\t%s" % (status.text, status.author.screen_name, status.created_at, status.source,) except Exception, e: print >> sys.stderr, 'Encountered Exception:', e pass def on_error(self, status_code): print >> sys.stderr, 'Encountered error with status code:', status_code return True # Don't kill the stream def on_timeout(self): print >> sys.stderr, 'Timeout...' return True # Don't kill the stream # Create a streaming API and set a timeout value of ??? seconds. streaming_api = tweepy.streaming.Stream(auth, CustomStreamListener(), timeout=None) # Optionally filter the statuses you want to track by providing a list # of users to "follow". print >> sys.stderr, "Filtering public timeline for %s" % keywords streaming_api.filter(follow=handle, track=keywords) </code>