2015-11-14 108 views
6

this Yelp tutorial的啓發,我創建了一個腳本來搜索給定城市中的所有健身房。我調整了腳本these updates以便返回所有健身房,而不僅僅是前20個。你可以找到要點here。 SEARCH_LIMIT是20.Yelp API的不良要求

我遇到了錯誤的請求錯誤。我非常仔細地跟蹤了Yelp教程,並且不確定它可能來自哪裏 - 我非常確定該請求是正確編碼的,並且我的所有API密鑰都是正確的。

打印出低於:

Traceback (most recent call last): 
    File "YelpSearch.py", line 97, in <module> 
    query_api() 
    File "YelpSearch.py", line 74, in query_api 
    response = search_yelp(offset) 
    File "YelpSearch.py", line 67, in search_yelp 
    return request(API_HOST, SEARCH_PATH, url_params=url_params) 
    File "YelpSearch.py", line 53, in request 
    conn = urllib2.urlopen(signed_url, None) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 127, in urlopen 
    return _opener.open(url, data, timeout) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 410, in open 
    response = meth(req, response) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 523, in http_response 
    'http', request, response, code, msg, hdrs) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 448, in error 
    return self._call_chain(*args) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 382, in _call_chain 
    result = func(*args) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 531, in http_error_default 
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) 
urllib2.HTTPError: HTTP Error 400: Bad Request 

回答

1

在例如搜索PARAMS他們替換空間與+標誌:

'term': term.replace(' ', '+'), 
'location': location.replace(' ', '+'), 

在你要點你硬編碼位置爲:'New York, NY',改變空格+應該有幫助。

+0

這不會改變任何東西 – NumenorForLife

1

Yelp API有侷限性。每個請求最多可以獲得20個項目。此外,可訪問的項目數量爲1000.我找不到有關documentation限制的信息。但是,我在support group上找到了有關這些限制的信息。基於此,您可以爲50個請求([1,...,20],[21,...,40],... [981,...,1000])獲得最多1000個項目

關於您的代碼段,您嘗試獲得超過1000個項目。我發現你的限制和偏移參數。 limit = 3, offset = 1000。這意味着你想要從1001到1003的項目。它與文檔相矛盾。

HTTP Error 400: Bad Request意味着你得到響應

{ 
    error: { 
    field: "offset", 
    description: "The maximum number of accessible results is 1000", 
    id: "INVALID_PARAMETER", 
    text: "One or more parameters are invalid in request" 
    } 
} 

如果你打開你的最後signed_url上,你會看到響應像上面的瀏覽器。此外,你會看到響應狀態代碼是400 Bad Request

+0

你會如何建議修復它? – NumenorForLife

+0

你對支持者有什麼看法。我認爲他們可以幫助你。 –

+0

我不明白 – NumenorForLife