当前位置: 首页 > 知识库问答 >
问题:

Tweepy的Twitter错误代码429

颛孙昆
2023-03-14

我试图创建一个使用tweepy api访问twitter帐户的项目,但是我遇到了状态代码429。现在,我环顾四周,我发现这意味着我有太多的请求。然而,我一次只能发10条推文,在我的测试中,应该只有一条。

for tweet in tweepy.Cursor(api.search, q = '@realtwitchess ',lang = ' ').items(10):
                        try:
                                text = str(tweet.text)
                                textparts = str.split(text) #convert tweet into string array to disect
                                print(text)

                                for x, string in enumerate(textparts): 
                                        if (x < len(textparts)-1): #prevents error that arises with an incomplete call of the twitter bot to start a game
                                                if string == "gamestart" and textparts[x+1][:1] == "@": #find games
                                                        otheruser = api.get_user(screen_name = textparts[2][1:]) #drop the @ sign (although it might not matter)
                                                        self.games.append((tweet.user.id,otheruser.id))
                                        elif (len(textparts[x]) == 4): #find moves
                                                newMove = Move(tweet.user.id,string)
                                                print newMove.getMove()
                                                self.moves.append(newMove)
                                if tweet.user.id == thisBot.id: #ignore self tweets
                                        continue

                        except tweepy.TweepError as e:  
                                print(e.reason)
                                sleep(900)
                                continue
                        except StopIteration: #stop iteration when last tweet is reached
                                break

当错误出现时,它出现在第一个for循环行中。有点奇怪的是,它并不是每次都抱怨,甚至没有持续的时间间隔。有时它会工作,而其他时候,似乎随机,不工作。

我们尝试在循环中增加更长的睡眠时间并减少项目数。

共有3个答案

严劲
2023-03-14

< code>api =tweepy。API(auth,wait_on_rate_limit=True,wait _ on _ rate _ limit _ notify = True)

这应该有助于设置率

卢俊发
2023-03-14

您找到了有关错误代码的正确信息。实际上,当由于资源的应用程序的速率限制已用尽而无法处理请求时,将返回 429 代码。(来自文档)
我想你的问题不在于数据量,而在于频率。

检查Twitter API速率限制(tweepy的速率限制相同)。

速率限制分为15分钟间隔。所有endpoint都需要身份验证,因此不存在未经身份验证的呼叫和速率限制的概念。GET请求有两个初始存储桶:每15分钟15个调用和每15分钟180个调用。

我认为你可以尝试在这个范围内使用API来避免这个问题

更新
对于最新版本的Tweepy(从3.2.0开始),引入了*wait_on_rate_limit*
如果设置为True,则允许自动避免此问题。

从留档:

wait _ on _ rate _ limit–是否自动等待费率限额补充

钮瀚
2023-03-14

在API调用上添加wait_on_rate_limit=true,如下所示:

api = tweepy.API(auth, wait_on_rate_limit=True)

这将使其余的代码遵守速率限制

 类似资料:
  • 我试图用tweepy和textblob分析推特的情绪。我确实安装了pip tweepy,并且安装成功,但是我得到了以下错误。 错误消息:导入tweepy文件“C:\Users\joshey\Desktop\sent.py”第2行中的文件“C:\Users\joshey\AppData\Local\Programs\Python\Python37\lib\site packages\tweepy\u

  • 通常,当我使用twitter流api时,我可以直接从以下位置访问标签: 推特- 当用tweepy搜索关于关键词/标签的推文时,它会下载一个<code> 当我搜索实体/主题标签时,我在作者下找到了第一个(我寻找的)。 推特- 这很奇怪。 “标签”位于 推特- 看起来像这样: 当我试图从 推特- 在循环中: 结果:hashtags是一个空字符串.. 使用时: 推特- 生成此错误: 我记得我最后一次和最

  • 我正在尝试在我的Game Maker应用程序(Game Maker不支持SDK)中通过OAuth和Twitter对Firebase的用户进行身份验证。 通过REST HTTP POST请求(根据https://developer.twitter.com/en/docs/basics/authentication/api-reference/request_token)执行此操作,但响应是“错误32

  • 我有一个非常基本的应用程序,它使用Tweepy的StreamingClient从定义的用户列表中流式发送推文。当他们中的一个人发推特时,我有几个基于关键词的条件来确定我是否应该提醒自己。我希望它将推文的文本和发送人的用户名都发送给我。我可以做前者,但可以知道如何获得用户名。 据我所知,我需要使用扩展,但我是一个完全的新手,不知道如何将它集成到我的代码中,因为大多数关于扩展的文档都在twitter

  • 有人能帮我解决这个问题吗? 谢谢:)

  • 使用Tweepy v2访问推文图片网址的优雅方式是什么?Twitter发布了他们API的v2,Tweepy将他们的python模块调整为它(Tweepy v2)。 举个例子,我有一个tweet的数据帧,用tweet创建,保存tweet id等等https://twitter.com/federalreserve/status/1501967052080394240 图片保存在不同的url下,twe