Frage

Hier LINK wird vorgeschlagen, dass es möglich ist, „Figure sie heraus, was das JavaScript tut und emulieren es in Ihrem Python-Code: "das ist es, was Ich mag Hilfe also meine Frage zu tun. Wie kann ich emulieren javascript: __ doPostBack

-Code von einer Website (ganze Seite Quelle hier LINK :

<a style="color: Black;" href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$gvSearchResults','Page$2')">2</a>

Natürlich habe ich im Grunde weiß Ahnung, wo man von hier geht.

Vielen Dank im Voraus für Ihre Hilfe und Ideen

Ok es gibt viele Beiträge zu fragen, wie eine Javascript-Schaltfläche klicken, wenn Web mit Python-Bibliotheken Verschrottung mechanisieren, beautifulsoup ...., ähnlich. Ich sehe eine Menge „die nicht unterstützt wird“ Antworten Diese nicht Python-Lösung verwenden. Ich denke, eine Python-Lösung für dieses Problem von großem Nutzen für viele sein würde. In diesem Licht schaue ich nicht nach Antworten wie Verwendung x, y oder z, die nicht Python-Code oder mit einem Browser erfordert die Interaktion.

War es hilfreich?

Lösung

Die mechanize Seite wird nicht sagen, dass Sie JavaScript in Python emulieren können. Es ist zu sagen, dass Sie ein verstecktes Feld in einer Form ändern können, so dass der Web-Server austricksen, dass ein Mensch 1 das Feld ausgewählt hat. Sie müssen noch das Ziel selbst analysieren.

Es wird keine sein Python-basierte Lösung für dieses Problem, wenn Sie einen JavaScript-Interpreter in Python erstellen möchten.

Meine Gedanken über dieses Problem hat mich dazu gebracht, auf drei mögliche Lösungen :

  1. erstellen Sie eine XULRunner Anwendung
  2. Browser Automatisierung
  3. Versuch, den clientseitigen Code zu interpretieren

Von diesen drei habe ich nur wirklich Diskussion von 2 zu sehen Ich habe etwas gesehen nahe 1 in einer kommerziellen Anwendung Schaben, wo Sie im Grunde erstellen Skripte, die von auf Websites durchsuchen und die Auswahl Dinge auf den Seiten, dass Sie MöCHTE die Skript Extrakt in der Zukunft.

1 könnte möglicherweise zu der Arbeit mit einem Python-Skript gemacht durch die Annahme eines Serialisierung (JSON?) von wsgi anfordern Objekte, die App immer die holen URL, dann sendet die verarbeiteten Seite als wsgi Response-Objekt. Du könntest möglicherweise wickeln einige Middleware um urllib2 dies zu erreichen. Overkill wahrscheinlich, aber irgendwie Spaß zu denken.

2 ist in der Regel erreicht über Selenium RC (Remote Control), ein Testzentrierte Werkzeug. Es bietet einige Methoden wie getHtmlSource aber die meisten Leute, die ich indem es nicht bekommen, wie seine API gehört.

3 Ich habe keine Ahnung von. node.js ist im Augenblick sehr heiß, aber ich habe nicht berührt es. Ich habe noch nie Spider auf meinem Ubuntu aufbauen kann Maschine, so habe ich das auch nicht berührt. Meine Vermutung ist, dass zu tun, um dies würden Sie die HTML-Quelle und Ihre Daten an einem JS Dolmetscher, die zu fälschen, Ihre User-Agent usw. im Falle müssten die JavaScript wollte mit dem Server verbinden.

1 gut, technisch , ein JavaScript-konformer User-Agent, die fast immer ein Web-Browser von einem Menschen

verwendet wird,
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top