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 MySQLdb gibt datetime.date und decimal zurück
  • Hinzufügen von Padding zu einem TKinter-Widget nur auf einer Seite
  • Warum sind einige MySQL-Verbindungen, die alte Daten die MySQL-Datenbank nach einem Löschen + Einfügen auswählen
  • 2 Werte in einem Datensatz-Array mit Django-Vorlage für Loop anzeigen
  • Python-Pandas - Wie man einen hierarchischen Index in Spalten glättet
  • Wie kann ich Drittanbieterbibliotheken in Python verwenden?
  • 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?

  • Plot groupby Daten mit sekundärer Achse
  • Python: requests.get, iterating url in einer Schleife
  • Split models.py in mehrere Dateien
  • Wie konvertiert man einen String von CP-1251 zu UTF-8?
  • Extrahieren von Daten mit Python Reguläre Ausdrücke
  • Python Pickling Wörterbuch EOFError
  • 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.