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.
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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie mit einer sehr alten user-agent und in der Tat einige Websites blockieren, Sie weil dieser.
InformationsquelleAutor karlcow
Ich verwendet fake UserAgent
Wie zu verwenden:
Ausgabe:
InformationsquelleAutor Umesh Kaushik