Erkennen des Seitenladeabschlusses für Infinite Scroll mit Selenium WebDriver
Beim Scraping von Daten von einer Seite, die Infinite Scroll verwendet, wird ermittelt, wann neuer Inhalt verfügbar ist Die fertige Beladung ist entscheidend für eine effiziente Ausführung. Der herkömmliche Ansatz, nach unten zu scrollen und eine bestimmte Zeitspanne zu warten, kann verschwenderisch sein.
Um dieses Problem zu beheben, bietet Selenium WebDriver Möglichkeiten, den Abschluss des Seitenladevorgangs genauer zu erkennen. WebDriverWait bietet einen Mechanismus, um darauf zu warten, dass ein bestimmtes Element auf der Seite erscheint und anzeigt, dass die neuen Daten verfügbar sind:
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 browser = webdriver.Firefox() browser.get("url") delay = 3 # seconds try: myElem = WebDriverWait(browser, delay).until(EC.presence_of_element_located((By.ID, 'IdOfMyElement'))) print("Page is ready!") except TimeoutException: print("Loading took too much time!")
Der Browser wartet auf das Erscheinen des Elements mit der angegebenen ID, bevor er fortfährt, um dies sicherzustellen Der neue Inhalt wurde geladen. Durch die Nutzung dieses Mechanismus können Skripte nach unten scrollen, das Vorhandensein von Elementen erkennen und fortfahren, sobald die Seite vollständig geladen ist. Dieser Ansatz optimiert den Schabeprozess und reduziert unnötige Wartezeiten.
Das obige ist der detaillierte Inhalt vonWie kann Selenium WebDriver den Abschluss des Seitenladevorgangs in Infinite-Scroll-Szenarien effizient erkennen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!