处理错误104和Twitter速率限制

2024-09-29 03:35:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一个研究项目,其中包括分析来自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)  

这做了一个很好的工作,停止和等待之前,我打破了我的限制,小规模缩小运行。但是,当我尝试在我的完整数据集上运行程序时,我最终在程序处于休眠状态时收到以下错误:

^{pr2}$

我的研究告诉我,这是因为Twitter正在断开连接,我需要捕捉错误。我如何捕捉到这个错误,重新连接,并让我的程序在它停止的地方重新启动?欢迎提出任何建议。在


Tags: 数据项目程序truerateon速率错误
2条回答

我也尝试过用同样的方法将Tweepy调用包装到whiletrue循环中,但是我也遇到了重新连接的问题(在某些情况下,这种解决方案不允许同样地解决问题)。否则,我想在出错的情况下切换Auth(连接到Tweepy API实例,这里是“twapi”),它似乎可以正常工作:

^{1}$

通过使用bool变量switch_auth可以(以防出现与重新连接失败相关的Tweepy错误)来“切换”Tweepy API模块的auth输入(可以假设它存储在auths列表中)来解决问题。 当达到研究的速率限制时,同样的技术也可以用来“切换”身份验证。希望有用,试试看!在

twitter断开连接错误是socket异常,这是IOError的一个特例例外情况为了抓住你需要做的事情

^{1}$

如果它工作正常,则在while真循环中包装,并增加回退,以便在重新调用之间提供一些暂停-连接。参考link

相关问题 更多 >