So warten Sie mit Selenium WebDriver für Python auf das Laden der Seite
Beim Scraping von Daten von Webseiten, die mit unendlichem Scrollen implementiert sind, ist es von entscheidender Bedeutung, Folgendes zu tun Erkennen Sie effizient, wann die Seite vollständig neue Inhalte geladen hat. In diesem Artikel wird ein zeiteffizienterer Ansatz im Vergleich zum Warten eines festen Zeitintervalls nach jedem Scrollen untersucht.
Standardmechanismus zum Laden von Seiten
Standardmäßig ist die .get-Datei des Selenium WebDriver ()-Methode wartet darauf, dass die Seite vollständig geladen ist. Dies berücksichtigt jedoch nicht das Laden innerhalb von Frames oder über AJAX-Anfragen.
Verwenden von WebDriverWait for Specific Elements
Um darauf zu warten, dass ein bestimmtes Element auf dem verfügbar wird Seite, verwenden Sie WebDriverWait() mit erwarteten_Bedingungen. Zum Beispiel:
from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By delay = 3 # seconds driver = webdriver.Firefox() driver.get("url") try: myElem = WebDriverWait(driver, delay).until(EC.presence_of_element_located((By.ID, 'id-of-element'))) print("Page is ready!") except TimeoutException: print("Loading took too much time!")
Überlegungen
Beachten Sie, dass WebDriverWait nur darauf wartet, dass das angegebene Element oder die angegebene Bedingung wahr wird. Wenn Sie auf zusätzliche Elemente oder Bedingungen warten, müssen Sie möglicherweise benutzerdefinierten Code verwenden, um den Abschluss des Seitenladevorgangs zu erkennen.
Das obige ist der detaillierte Inhalt vonWie kann ich mit Selenium WebDriver in Python effizient erkennen, wann eine Webseite (mit unendlichem Scrollen) vollständig geladen ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!