Warten auf eine Website, um vollständig mit WebKitGTK + [duplicate]

Mögliche Duplikat:
Webkit GTK: Bestimmen, wann ein Dokument beendet ist

Ich möchte den HTML-Inhalt einer Website mit WebKitGTK + abrufen, um die Javascript-Umleitungen automatisch zu bearbeiten.

  • Python-Klasse fehlt Positions-Argument
  • Generiere große Datei und sende sie
  • Drucken langsam (Simulieren)
  • Wie man Dekorateure wahlweise ein- oder ausschaltet
  • Fehler beim Ausführen von Testfall
  • Numpy Installation
  • Ich benutze den folgenden Python-Code:

    def scanURL(domain, retries=3): status = 0 loading = 0 browser = webkit.WebView() browser.open('http://' + domain) while browser.get_load_status() < 2: continue if browser.get_load_status() == 4: if retries > 0: return scanURL(domain, retries - 1) return 'Failed' return 'Success' 

    Die Website lädt sich gut, aber es gibt einige spezielle Webseiten, die auf eine Webseite umleiten, die irgendwo anders umgeleitet wird. Ich habe versucht, das load-finished Event an eine Funktion anzuschließen, und es wird zweimal genannt.

    Gibt es eine Möglichkeit zu wissen, wann WebKit eine Webseite komplett geladen hat?

    Wie kann ich wissen, ob WebKit noch einen JavaScript-Code ausführt?

  • Erstellen Sie Sellerie-Tasks dann synchron laufen
  • Warum ist `Wort == Wort [:: - 1]`, um für Palindrome schneller als eine algorithmische Lösung in Python zu testen?
  • Ist es möglich, das C ++ - Widget in die PyQt-Anwendung einzubetten?
  • Erkennung von Linien und Formen in OpenCV mit Python
  • Daten speichern nicht im Modell mit django formset
  • Übergeben von DataTable an IronPython
  • One Solution collect form web for “Warten auf eine Website, um vollständig mit WebKitGTK + [duplicate]”

    Es gibt keine sichere Möglichkeit, diese Aufgabe für alle Webseiten programmatisch zu erledigen, da es Seiten gibt, auf denen diese Umleitungen mit Javascript initiiert werden, die oft von setTimeout nach n-Sekunden gestartet wurden, und es gibt keine eingebaute Methode, um solche "Macken" . Allerdings, wenn Sie eine bekannte Gruppe von Webseiten analysieren, wo Sie sicher wissen, dass solche Umleitungen passieren, können Sie eine Liste dieser URLs mit der erforderlichen Anzahl von Sekunden erstellen, nach denen die Umleitung passieren wird. Nachdem ein anfänglicher loadFinished gefeuert wurde, kannst du einen QTimer starten, ihn an eine Funktion anschließen, die auslöst loadFinished wieder, also wird die nächste Seite geladen, während du auf das Ergebnis wartet. Warten Sie auf das Seitenergebnis, bis keine neuen loadStarted Signale abgefeuert sind und keine Umleitung erneut durchgeführt werden muss.

    Python ist die beste Programmiersprache der Welt.