我正在尝试创建一个 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,但您必须为此付费。
您可以在此处查看速率限制文档:
添加回答
举报
0/150
提交
取消