python - Github API 中的 Python Get 请求失败
问题描述
我正在尝试获取在 Github中top 2000 Java repos
排序的URLmost stars
代码:
import requests
import json
urls = []
#increased per_page in the request results to 100, so 20 iterations * 100 = 2000 repos
for i in range(20):
#waiting for 75 secs every 10 requests to respect the github limit
if i%10==0 and i >0:
time.sleep(75)
r = requests.get('https://api.github.com/search/repositories?q=language:java&sort=stars&order=desc&per_page=100&page='+str(i))
print (r.ok)
if r.ok == True:
items = r.json()["items"]
for each in items:
urls.append(each["html_url"])
请求在 10, ( ) 次迭代后失败,r.ok==False
因此它不会跨1000
repos。任何关于错误的建议都会很棒。
解决方案
我认为您超出了请求限制。根据文档,
在速率限制中,
Search API 有一个自定义速率限制。对于使用基本身份验证、OAuth 或客户端 ID 和密码的请求,您每分钟最多可以发出 30 个请求。对于未经身份验证的请求,速率限制允许您每分钟最多发出 10 个请求。
在存储库搜索 API 限制中,
通过各种标准查找存储库。此方法每页最多返回 100 个结果。
因此,您每分钟可获得 1000 个结果并超出限制。
推荐阅读
- php - 无法使用 Array 显示 JSON 值(
- python - SQL 约束未在 Odoo 11 中运行
- java - 问题倾倒使用 JPA 实现 RepositoryCustom
- drop-down-menu - Reactstrap 多级下拉祖先不关闭
- java - 为什么在使用 Powershell 指定 -Xms 和 -Xmx 时它们什么都不做,但通过 Netbeans IDE 可以正常工作?
- java - 无法使用 Java 11 运行 JOOQ GenerationTool (NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema)
- java - 我是否需要为 Java 中的所有不可变变量指定 «final» 修饰符?
- python - 从 Apache2 Ubuntu 运行程序(不是脚本)
- python - 如何从熊猫数据框列表中获取原始变量名
- regex - O365 DLP 自定义正则表达式