Wie mache ich Mechanisiere warten auf Web-Seite 'volle' Last?

Ich möchte eine Web-Seite kratzen, die ihre Komponenten dynamisch lädt. Diese Seite hat ein Onload-Skript, und ich sehe die komplette Seite 3-5 Sekunden nach der Eingabe der URL in meinen Browser.

Das Problem ist, wenn ich br.open('URL') , ist die Antwort die Webseite bei 0 Sekunden. Es gibt einen Unterschied 3-5 Sekunden später zwischen dem HTML (was ich will) und Ergebnis von br.open('URL') .

  • Python Mechanize: Wie wählt man eine Dropdown-Liste, wenn zwei den gleichen Namen in Web-Seite haben?
  • Mit Mechanisieren auf eine Webseite anmelden
  • Python Auto Fill mit Mechanize
  • Python mechanisieren, nach Link von url und was ist der nr Parameter?
  • Wie kann ich mechanize.Browser () Cookies speichern?
  • Installieren mechanisieren für python 3.4
  • Generiere N positive ganze Zahlen innerhalb eines Bereichs, der bis zu einer Gesamtmenge in Python addiert
  • Zeilenanzahl in einer CSV-Datei
  • Schreibzeilen in Spalten in Datei in Python
  • Schreiben Sie, um Zeilen mit einer bestimmten Anzahl von Spalten aufzulisten
  • Pandas min () der ausgewählten Zeile und Spalten
  • Vollständige Zufallszahl in Python
  • 2 Solutions collect form web for “Wie mache ich Mechanisiere warten auf Web-Seite 'volle' Last?”

    Das Arbeiten einer Webseite mit einem reichen Javascripts Inhalt mit Mechanisieren ist nicht viel einfach, aber es gibt Möglichkeiten, um zu bekommen, was Sie wollen, nach verschiedenen Situationen.

    • Wenn einige json-Anfragen gemacht werden, um den Inhalt zu erstellen, dann können Sie diese URLs anrufen und versuchen, Antworten zu analysieren, um Inhalte zu erhalten, dann versuchen, es richtig zu verbinden.

    • Wenn Sie einige Formulare verwenden müssen, können Sie einige Formularfelder erstellen und ihre Werte innerhalb von Mechanisieren festlegen. Oder schreiben Sie einfach eine Methode, die Ihre POST oder GET Daten kodiert (zitiert Sonderzeichen etc ..) und senden Sie sie mit mechanize.browser.open Methode.

    • Wenn die Seite einige Javascript-basierte Sicherheitsfunktionen hat (wie einige spezielle Codierungen, um Daten zu erstellen, bevor sie sie veröffentlichen), dann können Sie node.js wie Javascript-Anwendungsserver verwenden, um einige Javascript-Codeblöcke zu verarbeiten.

    Aber in der Tat, einige der oben genannten Optionen sind nicht einfach zu tun, und Sie müssen zweimal überlegen, bevor Sie Mechanisieren für solche Projekte verwenden.

    Das Problem, das Sie haben, ist, dass die Web-Seite in Ihrem Web-Browser über die Javascript-Engine gerendert wird. Allerdings hat Mechanisieren nicht die Möglichkeit, Javascript auf eigene Faust auszuführen, egal wie lange Sie warten, Sie werden nicht bekommen, um die HTML Sie fehlen mit nur Mechanisieren.

    Für weitere Informationen darüber, wie kratzte dynamisch generierte Inhalte, schauen Sie sich diese Frage an .

    Python ist die beste Programmiersprache der Welt.