python-requests http-response-500 (Website erreicht werden kann im browser)

Ich versuche herauszufinden, was ich falsch mache, aber ich habe immer verloren...

In python 2.7, bin ich mit folgenden code:

>>> import requests
>>> req = requests.request('GET', 'https://www.zomato.com/praha/caf%C3%A9-a-restaurant-z%C3%A1ti%C5%A1%C3%AD-kunratice-praha-4/daily-menu')
>>> req.content
'<html><body><h1>500 Server Error</h1>\nAn internal server error occured.\n</body></html>\n'

Wenn ich öffnen Sie diese in browser, er reagiert richtig. Ich war zu Graben um und fand ein ähnliches mit das urllib-Bibliothek (500-Fehlermeldung, mit das urllib.Anfrage.urlopen), jedoch bin ich nicht in der Lage, Sie anzupassen, noch mehr möchte ich Anfragen hier.

Ich könnte Sie schlagen hier einige fehlende proxy-Einstellungen, wie vorgeschlagen, zum Beispiel hier (Perl File::Abruf Fehlgeschlagen HTTP-Antwort: 500 Internal Server Error), aber kann jemand mir erklären, was ist die richtige Lösung mit dieser einen?

Haben Sie versucht, eine Anforderung anderen Seite? Vielleicht müssen Sie einen User-Agent-header von Firefox oder sowas, weil die Seite nicht reagiert auf Anfragen, die durch das python-Anfrage Bibliothek.
Ab zu schauen, was passiert, im Netz melden sich beim laden dieser Seite in einem browser, es ist zumindest teilweise eine Reagieren-app, die dynamisch rendert Ihre Inhalte im browser. Sie sind wahrscheinlich nicht viel Glück Schaben direkt mit requests.
ja, hatte ich. Ich habe Probleme, möchte nur einige von Ihnen, der rest funktioniert...
Was würden Sie bitte empfehlen, einen universellen Ansatz zu kratzen web-Seiten, wie die Allgemeinen?
Es gibt keine Universelle Antwort. requests ist toll für bezaubernde Sachen, die mit HTTP(S), aber wenn Sie brauchen, um zu sehen, was in einem browser benötigen Sie einen browser. Ich habe Glück gehabt mit Selen, wenn Sie einfach nur zu kratzen, eine Seite, meistens die Leistung von Javascript. Es gibt Ihnen eine API, mit der Sie Laufwerk und die Abfrage einen Laufenden browser. Wenn Sie herausfinden, die zugrunde liegende API-Endpunkte, auf die Seite, zieht seine Daten aus, die Sie verwenden können requests und Sie werden besser.

InformationsquelleAutor Kube Kubow | 2016-11-05

Schreibe einen Kommentar