问题解决了,请参阅解决方案在后在Tweepy运行时间估计流Twitter的与位置过滤
我需要帮助估计我tweepy程序调用与位置过滤Twitter的流API运行时间的结束。
我踢了它之后,跑了20多分钟,比我想象的要长。我是Twitter Stream API的新手,并且只使用REST API几天。在我看来,REST API会在几秒钟内为我提供50条推文,非常简单。但是这个Stream请求需要更多时间。我的程序并没有死在我身上,也没有给出任何错误。所以我不知道它是否有什么问题。如果是这样,请指出。
总之,如果您认为我的代码是正确的,您能否提供运行时间的估计值?如果你认为我的代码错了,你能帮我解决吗?
预先感谢您!
下面的代码:
# Import Tweepy, sys, sleep, credentials.py
import tweepy, sys
from time import sleep
from credentials import *
# Access and authorize our Twitter credentials from credentials.py
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
box = [-86.33,41.63,-86.20,41.74]
class CustomStreamListener(tweepy.StreamListener):
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
stream = tweepy.streaming.Stream(auth, CustomStreamListener()).filter(locations=box).items(50)
stream
我试过的方法,从http://docs.tweepy.org/en/v3.4.0/auth_tutorial.html#auth-tutorial显然它不工作对我来说...这是我下面的代码。你介意提供任何意见吗?让我知道你是否有一些工作代码。谢谢!
# Import Tweepy, sys, sleep, credentials.py
import tweepy, sys
from time import sleep
from credentials import *
# Access and authorize our Twitter credentials from credentials.py
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
# Assign coordinates to the variable
box = [-74.0,40.73,-73.0,41.73]
import tweepy
#override tweepy.StreamListener to add logic to on_status
class MyStreamListener(tweepy.StreamListener):
def on_status(self, status):
print(status.text)
def on_error(self, status_code):
if status_code == 420:
#returning False in on_data disconnects the stream
return False
myStreamListener = MyStreamListener()
myStream = tweepy.Stream(auth = api.auth, listener=myStreamListener())
myStream.filter(track=['python'], locations=(box), async=True)
以下是错误消息:
Traceback (most recent call last):
File "test.py", line 26, in <module>
myStream = tweepy.Stream(auth = api.auth, listener=myStreamListener())
TypeError: 'MyStreamListener' object is not callable
问题解决了!请参阅解决方案低于
又一轮的调试后,这里是谁可能具有相同的主题感兴趣的一个解决方案:
# Import Tweepy, sys, sleep, credentials.py
try:
import json
except ImportError:
import simplejson as json
import tweepy, sys
from time import sleep
from credentials import *
# Access and authorize our Twitter credentials from credentials.py
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
# Assign coordinates to the variable
box = [-74.0,40.73,-73.0,41.73]
import tweepy
#override tweepy.StreamListener to add logic to on_status
class MyStreamListener(tweepy.StreamListener):
def on_status(self, status):
print(status.text.encode('utf-8'))
def on_error(self, status_code):
if status_code == 420:
#returning False in on_data disconnects the stream
return False
myStreamListener = MyStreamListener()
myStream = tweepy.Stream(api.auth, listener=myStreamListener)
myStream.filter(track=['NYC'], locations=(box), async=True)
尼斯,@Withnail,我稍后会看看你的答案,并考虑所有的好的细节。提前感谢您的时间和关注!我有一个预感,这将是一个很好的对话和学习机会。兴奋。 – Counter10000
我尝试了你从http://docs.tweepy.org/en/v3.4.0/auth_tutorial.html#auth-tutorial提到的方法,显然它不适合我...我的测试代码被添加到我的文章上面。你介意提供任何意见吗?让我知道你是否有一些工作代码。谢谢! – Counter10000
查看修订答案! – Withnail