我正在从事一项研究项目,该项目涉及分析来自 Twitter 的大量数据。该项目是使用 Tweepy 在 Python 中构建的。正如您可能想象的那样,我必须在 Twitter 速率限制器的范围内非常密切地工作。因此,我的身份验证代码如下所示。
auth1 = tweepy.OAuthHandler("...", "...")
auth1.set_access_token("...", "...")
api1 = tweepy.API(auth1, wait_on_rate_limit=True, wait_on_rate_limit_notify=True)
在我达到我对小规模缩小运行请求的限制之前,它可以很好地停止和等待。但是,当我尝试在我的完整数据集上运行该程序时,我最终在程序休眠时遇到了这个错误:
tweepy.error.TweepError: Failed to send request: ('Connection aborted.', error(104, 'Connection reset by peer'))
我的研究告诉我,发生这种情况是因为 Twitter 正在断开连接,我需要捕获错误。我将如何捕捉到这个错误,重新连接并让我的程序从它停止的地方开始?欢迎任何建议。
最佳答案
twitter 断开连接错误是套接字异常,这是 IOError 异常的特例。为了捕获它,你需要做类似的事情
auth = tweepy.OAuthHandler(… # set up your oauth here
try:
stream = tweepy.Stream(auth=auth, listener=SomeListener()) # start the stream
except IOError, ex:
print 'I just caught the exception: %s' % ex
如果它工作在 while True 循环中并增加退避,以便在重新连接之间提供一些暂停。引用 link
关于python - 解决错误 104 和 Twitter 速率限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29401640/