Maison  >  Article  >  développement back-end  >  Exemple de web scraping dynamique Python : application de Selenium et Webdriver

Exemple de web scraping dynamique Python : application de Selenium et Webdriver

PHPz
PHPzoriginal
2024-08-23 16:30:371143parcourir

Python dynamic web scraping example: application of selenium and webdriver

Le scraping dynamique du Web utilise généralement certaines bibliothèques Python, telles que les requêtes pour gérer les requêtes HTTP, le sélénium pour simuler le comportement du navigateur ou pyppeteer. L'article suivant portera sur l'utilisation du sélénium.

Une brève introduction au sélénium

selenium est un outil permettant de tester des applications Web, mais il est également souvent utilisé pour le web scraping, notamment lorsqu'il est nécessaire de supprimer du contenu Web généré dynamiquement par JavaScript. Le sélénium peut simuler le comportement de l'utilisateur dans le navigateur, tel que cliquer, saisir du texte et obtenir des éléments de page Web.

Exemple de scraping Web dynamique Python

Tout d’abord, assurez-vous que le sélénium est installé. Sinon, vous pouvez l'installer via pip :

pip install selenium

Vous devez également télécharger le WebDriver pour le navigateur correspondant. ‌En supposant que nous utilisons le navigateur Chrome,‌ vous devez télécharger ChromeDriver et vous assurer que son chemin est ajouté aux variables d'environnement système,‌ ou vous pouvez spécifier son chemin directement dans le code. ‌

Voici un exemple simple pour récupérer le titre d'une page Web :‌

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

# Setting up webdriver
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))

# Open the webpage
driver.get('https://www.example.com')

# Get the webpage title
title = driver.title

print(title)

# Close the browser
driver.quit()

Ce script ouvrira example.com, obtiendra son titre et l'imprimera. ‌

Notez que ‌webdriver_manager est une bibliothèque tierce qui gère automatiquement les versions de WebDriver. ‌Si vous ne souhaitez pas l'utiliser, vous pouvez également télécharger manuellement WebDriver et spécifier le chemin. ‌

Les pages Web dynamiques peuvent impliquer du contenu rendu en JavaScript. ‌selenium peut attendre que ces éléments se chargent avant de fonctionner, ce qui est très approprié pour traiter de telles pages Web. ‌

Définir un proxy lors du scraping de pages Web dynamiques en python

Lorsque vous utilisez Python pour explorer des pages Web dynamiques, vous utilisez souvent un proxy. L’utilisation d’un proxy évite de nombreux obstacles d’une part et accélère l’efficacité du travail d’autre part.

Nous avons présenté l'installation du sélénium ci-dessus. De plus, vous devez également télécharger le WebDriver du navigateur correspondant et vous assurer que son chemin est ajouté aux variables d'environnement du système, ou vous pouvez spécifier son chemin directement dans le code.
Après avoir terminé les étapes ci-dessus, nous pouvons configurer les pages Web dynamiques proxy et scrap :

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

# Set Chrome options
chrome_options = Options()
chrome_options.add_argument('--proxy-server=http://your_proxy_ip:port')

# Specify the WebDriver path (if you have added the WebDriver path to the system environment variables, you can skip this step)
# driver_path = 'path/to/your/chromedriver'
# driver = webdriver.Chrome(executable_path=driver_path, options=chrome_options)

# If WebDriver path is not specified, the default path is used (make sure you have added WebDriver to your system environment variables)
driver = webdriver.Chrome(options=chrome_options)

# Open the webpage
driver.get('https://www.example.com')

# Get the webpage title
title = driver.title

print(title)

# Close the browser
driver.quit()

Dans cet exemple, ‌--proxy-server=http://your_proxy_ip:port est le paramètre de configuration du proxy.‌ Vous devez remplacer your_proxy_ip et port par l'adresse IP et le numéro de port du serveur proxy que vous utilisez réellement. utiliser.‌

Si votre serveur proxy nécessite une authentification,‌ vous pouvez utiliser le format suivant :‌

chrome_options.add_argument('--proxy-server=http://username:password@your_proxy_ip:port')

Où le nom d'utilisateur et le mot de passe sont le nom d'utilisateur et le mot de passe de votre serveur proxy. ‌

Après avoir exécuté le code ci-dessus, ‌selenium accédera à la page Web cible via le serveur proxy configuré‌ et imprimera le titre de la page Web. ‌
Comment spécifier le chemin d'accès à ChromeDriver ?
ChromeDriver fait partie de Selenium WebDriver. Il interagit avec le navigateur Chrome via l'API WebDriver pour implémenter des fonctions telles que les tests automatisés et les robots d'exploration Web. ‌
Spécifier le chemin de ChromeDriver implique principalement la configuration des variables d'environnement. ‌Voici les étapes spécifiques : ‌
1. Trouver l'emplacement d'installation de Chrome
Vous pouvez le trouver en cliquant avec le bouton droit sur le raccourci Google Chrome sur le bureau et en sélectionnant « Ouvrir l'emplacement du fichier ». ‌
2. Ajoutez le chemin d'installation de Chrome à la variable d'environnement système Path
Cela permet au système de reconnaître ChromeDriver à n'importe quel endroit. ‌
3. Téléchargez et décompressez ChromeDriver
Assurez-vous de télécharger le ChromeDriver qui correspond à la version du navigateur Chrome et de le décompresser dans un programme exe. ‌
4. Copiez le fichier exe de ChromeDriver sur le chemin d'installation de Chrome
De cette façon, lorsque vous devez utiliser ChromeDriver, le système peut automatiquement le reconnaître et l'appeler

Ce qui précède est l'application de Selenium et de Webdriver dans l'exploration Web dynamique de Python, et comment l'éviter lors de l'exploration de pages Web. Bien sûr, vous pouvez également pratiquer des opérations réelles à travers les exemples ci-dessus.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn