Bien sûr ! Voici un exemple commenté d'utilisation de Selenium pour extraire des données d'une page web complexe qui utilise beaucoup de JavaScript pour s'afficher à l'écran :
python
Copy code
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# Créer une instance du navigateur
driver = webdriver.Chrome('chemin/vers/le/driver/chromedriver.exe')
# Charger la page web
driver.get('
https://www.example.com/')
# Attendre que la page se charge complètement
wait = WebDriverWait(driver, 10)
wait.until(EC.visibility_of_element_located((By.XPATH, '//*[@id="content"]')))
# Interagir avec la page web
button = driver.find_element(By.XPATH, '//*[@id="my-button"]')
button.click()
# Attendre que la page se charge complètement à nouveau après le clic
wait.until(EC.visibility_of_element_located((By.XPATH, '//*[@id="result"]')))
# Extraire les données
result = driver.find_element(By.XPATH, '//*[@id="result"]')
print(result.text)
# Fermer le navigateur
driver.close()
Dans cet exemple, nous avons utilisé le navigateur Chrome et le driver Chrome fourni par Selenium pour contrôler le navigateur.
Nous avons chargé la page web en utilisant la méthode get de la classe webdriver. Nous avons ensuite attendu que la page se charge complètement en utilisant la classe WebDriverWait de Selenium avec la méthode until pour attendre que l'élément #content soit visible sur la page.
Nous avons ensuite interagi avec la page en cliquant sur un bouton #my-button. Nous avons à nouveau attendu que la page se charge complètement après le clic en utilisant la méthode until avec l'élément #result.
Enfin, nous avons extrait les données de la page en utilisant la méthode text de l'élément #result, puis nous avons fermé le navigateur en utilisant la méthode close de la classe webdriver.
Cet exemple est juste un exemple générique, il conviendra d'adapter les sélecteurs en fonction de la page web à analyser.