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') .

  • Wie kann ich mechanize.Browser () Cookies speichern?
  • Wie wählen Sie die Auswahl in Form von Python aus?
  • Mechanisiere br.mitmit () Einschränkungen?
  • Pythons Mechanisierungs-Proxy-Unterstützung
  • Force python mechanize / urllib2 nur A Anfragen verwenden?
  • Python Mechanize Formular auswählen FormNotFoundError
  • Python mechanisieren, nach Link von url und was ist der nr Parameter?
  • Pythonmechanisierungsformen () irren
  • 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.