为了账号安全,请及时绑定邮箱和手机立即绑定

有没有办法避免我的 python 程序中 Twitter API 中的速率限制错误?

有没有办法避免我的 python 程序中 Twitter API 中的速率限制错误?

交互式爱情 2023-10-06 18:39:19
我正在尝试创建一个 Twitter 用户图,为此我编写了以下代码:import operatorimport sysimport timefrom urllib.error import URLErrorfrom http.client import BadStatusLineimport jsonimport twitterfrom functools import partialfrom sys import maxsize as maxintimport itertoolsimport networkximport matplotlib.pyplot as pltG = networkx.Graph()# Code and function taken from the twitter cookbookdef oauth_login():    CONSUMER_KEY = 'xxxx'    CONSUMER_SECRET = 'xxZD6r'    OAUTH_TOKEN = 'xxNRYl'    OAUTH_TOKEN_SECRET = 'xxHYJl'    auth = twitter.oauth.OAuth(OAUTH_TOKEN, OAUTH_TOKEN_SECRET, CONSUMER_KEY, CONSUMER_SECRET)    twitter_api = twitter.Twitter(auth=auth)    return twitter_api# Code and function taken from the twitter cookbookdef make_twitter_request(twitter_api_func, max_errors=10, *args, **kw):    # A nested helper function that handles common HTTPErrors. Return an updated    # value for wait_period if the problem is a 500 level error. Block until the    # rate limit is reset if it's a rate limiting issue (429 error). Returns None    # for 401 and 404 errors, which requires special handling by the caller.    def handle_twitter_http_error(e, wait_period=2, sleep_when_rate_limited=True):        if wait_period > 3600:  # Seconds            print('Too many retries. Quitting.', file=sys.stderr)            raise e        if e.e.code == 401:            print('Encountered 401 Error (Not Authorized)', file=sys.stderr)            return None        elif e.e.code == 404:            print('Encountered 404 Error (Not Found)', file=sys.stderr)            return None        elif e.e.code == 429:但是我经常收到此错误,这使我的程序运行速度非常慢输入的 ID:60784269 已获取 60784269 的 5000 个朋友 ID 总数 已获取 60784269 的 5000 个关注者 ID 总数 遇到 429 错误(超出速率限制) 15 分钟后重试...ZzZ...有办法解决这个问题吗?让代码运行得更快?我已经阅读了一些文件,但我仍然没有任何清晰的图片。任何帮助表示赞赏。
查看完整描述

1 回答

?
湖上湖

TA贡献2003条经验 获得超2个赞

公共 API 无法绕过速率限制。

尽管现在有一个 API v2,它也允许您获取用户并且不会在相同的速率限制下工作。

请注意,此解决方案将是临时的,因为 Twitter 将在某个时候删除对 API v1 的访问。

您可以请求 Twitter 访问高级/企业级别的 API,但您必须为此付费。

您可以在此处查看速率限制文档:


查看完整回答
反对 回复 2023-10-06
  • 1 回答
  • 0 关注
  • 97 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信