簡體   English   中英

Yelp API的錯誤請求

[英]Bad Request from Yelp API

Yelp教程的啟發,我創建了一個腳本來搜索給定城市中的所有體育館。 我用這些更新對腳本進行了調整,以返回所有健身房,而不僅僅是前20個。您可以在此處找到要點。 SEARCH_LIMIT為20。

我遇到錯誤請求錯誤。 我非常仔細地遵循了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

在示例搜索參數中,它們將空格替換為+號:

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

在主旨中,您已將位置硬編碼為: 'New York, NY' ,將空格更改為+應該會有所幫助。

Yelp API有局限性。 每個請求最多可以獲取20個項目。 另外,可訪問項目的數量是1000。我找不到有關文檔限制的信息 但是,我在支持小組上找到了有關這些限制的信息。 基於此,您最多可以獲得50個請求的1000個項目([1,...,20],[21,...,40],... [981,...,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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM