python - 解决错误 104 和 Twitter 速率限制

标签 python error-handling tweepy rate-limiting

我正在从事一项研究项目,该项目涉及分析来自 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/

相关文章:

sql - SQL-处理PHP中的错误(重复输入)

ruby - 无此文件或目录

python - 在python中的azure databricks笔记本中发送电子邮件(outlook作为服务器)?

python - 有没有办法将Python脚本转换为Linux上可执行的Windows程序

python - 如何从matlab调用python类的 "__call__()"方法

asp.net-mvc - 404 MVC 错误 Controller 出现错误

Python SQLAlchemy - "MySQL server has gone away"

python - Twitter API 速率限制问题

python - 如何通过python获取实时推文时定义输出推文的稳定形式

python - Tweepy 跟踪条款和关注用户