Anfragen.Holen Sie sich in Python mit "User-Agent" nicht simulieren, eine browser-Anfrage

Habe ich zum sammeln von Informationen aus Webseiten mit Hilfe von Python aus einem Linux-terminal funktioniert es wunderbar, aber einige Seiten (nicht alle) abrufen ungültige URL ' s, wenn ich versuche, Anfragen.Holen Sie sich durch Sie haben Agenten Detektoren, und Sie nicht wissen, wie die Antwort auf meine Anfrage (ich bin kein browser-oder mobile-Anwendung, aus einem Linux-terminal).

Durch ein "User-Agent" - header hat nicht funktioniert entweder, ich habe versucht, mehrere verschiedene Möglichkeiten, es zu senden, zu emulieren, ich bin ein Mozilla-browser:

user_agent = {'User-Agent': 'Mozilla/5.0'}

oder

user_agent = {'User-Agent': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; hu-HU; rv:1.7.8) Gecko/20050511 Firefox/1.0.4'}

oder viele andere Kombinationen.

In einigen Servern, wenn ich versuche, mit dieser Zeile:

page = requests.get(url, headers=user_agent)

Bekomme ich ein schlechtes Anfrage, da diese Server versuchen, senden Sie mir eine Webseite für desktop-oder mobilen Browsern, und Sie scheitern, um es zu identifizieren.

Mache ich etwas falsch senden einer Benutzer-Agent in dieser Weise? Ich habe versucht meinen code in einem Python-Notebook und es funktioniert perfekt durch, derzeit bin ich (natürlich) senden einer Anforderung von einem browser.

Vielleicht sind Sie versucht, zu laufen, etwas JavaScript zum erkennen des Browsers. Haben Sie einen Blick auf die Seite Quelle.
Es ist unwahrscheinlich, dass Sie Ihre Python-Notebook beeinträchtigen würden Kopfzeilen Ihrer requests Anfragen. Ein Tipp: Versuchen Sie, fügen Sie auch einige Referer-header (heute fand ich eine Seite, in Indien, war die Beantwortung 404 im Falle von fehlenden Referer).
Aber es ist sehr einfach, um das Problem zu identifizieren, sende ich eine Anfrage von meinem terminal und es wird einem nicht ermittelten Quelle, schicke ich es aus python-notebook und es funktioniert. Ich werde versuchen, fügen Sie einen referrer zu sehen, ob das funktioniert
Sie können immer http://httpbin.org/get zu haben-Header zurückgegeben wird; wahrscheinlich brauchen Sie mehr als nur ein User-Agent-header, requests ist nicht mangeln diese. Hinzufügen eines Referrer vielleicht?
Ich schlage vor, Sie verwenden ein tool wie wireshark, um genau zu sehen, was der dialog zwischen dem server und einem aktuellen browser. Sie werden sehen, wenn es sich um cookies, javascript, benutzerdefinierte Kopf-oder ...

InformationsquelleAutor Maximiliano Rios | 2014-05-26

Schreibe einen Kommentar