根据docs,我可以每分钟调用代码搜索API 5次而无需任何凭据。 所以我应该可以使用python请求:
import requests
user_agent = {'User-Agent': 'Awesome-Octocat-App'}
r = requests.get("https://api.github.com/search/repositories?q=chembl", headers=user_agent)
但不幸的是它不行:
r.ok
>>> False
r.status_code
>>> 404
我的标题看起来很好:
r.request.headers
>>> {'Accept': '*/*',
'Accept-Encoding': 'gzip, deflate, compress',
'Content-Length': '0',
'User-Agent': 'Awesome-Octocat-App'}
请允许我添加此链接:
https://github.com/search?q=chembl
返回17个结果。
那么我做错了什么?
答案 0 :(得分:2)
GitHub搜索API为currently available in "preview mode"。要在预览期间访问API,您必须specify a custom media type in the Accept header:
application/vnd.github.preview
预览期允许开发人员在宣布API稳定且适合生产使用之前测试新API并与GitHub分享他们的反馈。预览期从2013年7月19日开始,预计将持续约60天。在预览期的 end ,您将不再需要在Accept标头中指定此自定义媒体类型。
答案 1 :(得分:1)
您可能需要设置特殊的用户代理。 http://developer.github.com/v3/#user-agent-required
编辑:您还必须根据此页面在Accept标头中提供自定义媒体类型:developer.github.com/v3/search