2015-11-14 12 views
6

Zainspirowany przez this Yelp tutorial, stworzyłem skrypt, aby wyszukać wszystkie siłownie w danym mieście. Poprawiłem scenariusz za pomocą these updates, aby zwrócić WSZYSTKIE sale gimnastyczne, nie tylko pierwsze 20. Można znaleźć istotę here. SEARCH_LIMIT ma wartość 20.Złe żądanie z Yelp API

Występuje błąd nieprawidłowego żądania. Dokładnie podążyłem za Poradnikiem Yelp i nie jestem pewien, skąd się bierze - jestem prawie pewien, że żądanie jest poprawnie zakodowane i wszystkie moje klucze API są poprawne.

Druk obecnie jest poniżej:

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 

Odpowiedz

1

w przykładzie params wyszukiwania one zastąpić spacje z + znak:

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

W swojej GIST został ustalony lokalizację jako: 'New York, NY', zmieniając spacji aby + powinno pomóc.

+0

To nic nie zmienia. – NumenorForLife

1

API Yelp ma ograniczenia. Możesz uzyskać maksymalnie 20 przedmiotów na każde żądanie. Ponadto ilość dostępnych pozycji wynosi 1000. Nie mogę znaleźć informacji o ograniczeniach na documentation. Ale znalazłem informacje na temat tych ograniczeń na support group. Na tej podstawie można uzyskać maksymalnie 1000 pozycji dla 50 żądań ([1, ..., 20], [21, ..., 40], ... [981, ..., 1000])

Jeśli chodzi o Twój fragment, próbujesz zdobyć ponad 1000 przedmiotów. Dowiedziałem się, że parametry limitu i przesunięcia. limit = 3, offset = 1000. Oznacza to, że chcesz dostać przedmioty od 1001 do 1003. I to przeczy dokumentacji.

HTTP Error 400: Bad Request oznacza, uzyskać odpowiedzi

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

Jeśli otworzysz swój ostatni signed_url w przeglądarce można zobaczyć odpowiedź jak wyżej. Ponadto zobaczysz kod stanu odpowiedzi: 400 Bad Request.

+0

Jak poleciłbyś to naprawić? – NumenorForLife

+0

Co sądzisz o kibicach? Myślę, że mogą ci pomóc. –

+0

Nie rozumiem – NumenorForLife

Powiązane problemy