Détection de la fin du chargement d'une page pour un défilement infini avec Selenium WebDriver
Lors de la récupération des données d'une page qui utilise un défilement infini, déterminer quand un nouveau contenu a le chargement terminé est crucial pour une exécution efficace. L'approche traditionnelle, qui consiste à faire défiler vers le bas et à attendre une durée déterminée, peut s'avérer inutile.
Pour résoudre ce problème, Selenium WebDriver fournit des moyens de détecter plus précisément l'achèvement du chargement des pages. WebDriverWait propose un mécanisme pour attendre qu'un élément spécifique apparaisse sur la page, indiquant que les nouvelles données sont disponibles :
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!")
Le navigateur attend que l'élément avec l'ID spécifié apparaisse avant de continuer, garantissant que le nouveau contenu est chargé. En tirant parti de ce mécanisme, les scripts peuvent faire défiler vers le bas, détecter la présence d'éléments et continuer une fois le chargement de la page terminé. Cette approche optimise le processus de scraping, réduisant ainsi les temps d'attente inutiles.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!