2013-08-29 73 views
1

根據docs我可以在沒有任何憑證的情況下每分鐘調用5次代碼搜索API。 所以我應該能夠使用Python請求:github代碼搜索api總是返回404

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結果。

那麼我做錯了什麼?

回答

1

您可能需要設置一個特殊的用戶代理。 http://developer.github.com/v3/#user-agent-required

編輯:您還必須在接受頭根據該頁面提供自定義的媒體類型:developer.github.com/v3/search

+0

更正了這個問題,並相應地修改了問題,但我仍然遇到問題... – mnowotka

+1

http://developer.github.com/v3/search/這裏說「你必須在Accept頭中提供一個自定義媒體類型」 – phito

+0

Argh ....你能否更新你的答案,以便我可以接受它? – mnowotka

2

GitHub的搜索API currently available in "preview mode"。要在預覽期間訪問API,你必須specify a custom media type in the Accept header

application/vnd.github.preview 

預覽期間允許開發人員測試了新的API,並與GitHub上分享他們的反饋API聲明穩定並適用於生產使用之前。預覽期從2013年7月19日開始,預計將持續大約60天。在預覽期間的結束處,您將不再需要在Accept標頭中指定此自定義媒體類型。