mechanize-python

___ answer5531048 ___

So legen Sie den Benutzeragenten für alle Anfragen fest, die von mechanize.Browser

gestellt werden %Vor%

Mechanize kann auch Formulare ausfüllen

%Vor%

Weitere Informationen finden Sie in den Mechanisierungsbeispielen

    
___ tag123python ___ Python ist eine dynamische und stark typisierte Programmiersprache, die die Usability betont. Zwei ähnliche, aber größtenteils inkompatible Versionen von Python sind weit verbreitet (2 und 3). Wenn Sie eine versionsspezifische Python-Frage haben, sollten Sie die Tags [python-2.7] oder [python-3.x] zusätzlich zum Tag [python] verwenden. Wenn Sie eine Python-Variante wie jython, pypy, iron-python usw. verwenden, kennzeichnen Sie diese bitte entsprechend. ___ qstnhdr ___ So erhalten Sie Mechanisierungsanfragen so, als ob sie von einem echten Browser stammen ___ answer6227710 ___

Wenn Sie paranoid sind, bots / scripts / nicht-reale Browser draußen zu halten, suchen Sie nach Dingen wie der Reihenfolge der HTTP-Anfragen, lassen Sie eine Ressource mit JavaScript hinzufügen. Wenn diese Ressource nicht angefordert oder vor dem JavaScript angefordert wird, wissen Sie, dass es sich um einen "falschen" Browser handelt. Sie können auch die Anzahl der Anfragen pro Verbindung betrachten (keep-alive) oder einfach verifizieren, dass alle CSS-Dateien der ersten Seite (vorausgesetzt, sie befinden sich ganz oben im HTML) geladen werden.

YMMV, aber es kann ziemlich umständlich werden, genug zu simulieren, um einen "falschen" Browser als "echten" (von Menschen benutzt) durchgehen zu lassen.

    
___ qstntxt ___

OK, hier ist der Header (nur ein Beispiel), den ich von Live HTTP Header bekommen habe, während ich mich bei einem Account anmelde:

%Vor%

Normalerweise würde ich so schreiben:

%Vor%

Der obige Code funktioniert einwandfrei. Meine Frage ist, muss ich auch diese folgenden Zeilen hinzufügen (und mehr in früheren Header-Infos) in %code% , damit es wirklich aussieht wie Firefox surfen, nicht mechanisieren?

%Vor%

Welche Teile / wie viele Header-Infos müssen gefälscht werden, damit sie "echt" aussehen?

    
___ tag123httpheaders ___ Im Hypertext Transfer Protocol (HTTP) enthalten HTTP-Header-Felder die Betriebsparameter einer HTTP-Anfrage oder -Antwort. Mit der Anfrage- oder Antwortzeile (erste Zeile der Nachricht) bilden sie den Nachrichtenkopf. ___ tag123mechanize ___ Eine ursprünglich für Perl entwickelte Bibliothek für das automatisierte Web-Browsing gibt es nun auch für Python- und Ruby-Implementierungen. ___ tag123httppost ___ POST ist eine der HTTP-Protokollmethoden. Es wird verwendet, wenn der Client Daten an den Server senden muss, z. B. beim Hochladen einer Datei oder beim Senden eines ausgefüllten Formulars. ___ tag123mechanipepthon ___ Stateful programmatische Web-Browsing in Python, nach Andy Lester Perl-Modul WWW :: Mechanize. ___ answer4622816 ___

Es kommt darauf an, was Sie versuchen zu "täuschen". Sie können versuchen, einige Online-Dienste, die einfache User Agent Sniffing tun, um Ihren Erfolg zu messen:

Ссылка

Ссылка (suchen Sie nach "Wir denken, Sie benutzen ...")

Ссылка

Ссылка - & gt; wird Ihnen helfen, einige "zu häufige Optionen" auszuwählen.

Ссылка

Ich glaube, ein entschlossener Programmierer könnte Ihr Spiel entdecken, aber viele Log-Parser und Werkzeuge würden nicht einmal echo, was Ihr echter Browser sendet.

Eine Sache, die Sie beachten sollten, ist, dass das Fehlen von JS rote Flags auslösen könnte, also Capture gesendete Header mit JS auch deaktiviert.

    
___
3
Antworten

So erhalten Sie Mechanisierungsanfragen so, als ob sie von einem echten Browser stammen

OK, hier ist der Header (nur ein Beispiel), den ich von Live HTTP Header bekommen habe, während ich mich bei einem Account anmelde: %Vor% Normalerweise würde ich so schreiben: %Vor% Der obige Code funktioniert einwandfrei. Meine Frage is...
07.01.2011, 05:23