"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Ejemplo de web scraping dinámico de Python: aplicación de selenium y webdriver

Ejemplo de web scraping dinámico de Python: aplicación de selenium y webdriver

Publicado el 2024-09-02
Navegar:723

Python dynamic web scraping example: application of selenium and webdriver

El web scraping dinámico generalmente utiliza algunas bibliotecas de Python, como solicitudes para manejar solicitudes HTTP, selenio para simular el comportamiento del navegador o pyppeteer. El siguiente artículo se centrará en el uso del selenio.

Una breve introducción al selenio.

selenium es una herramienta para probar aplicaciones web, pero también se usa a menudo para web scraping, especialmente cuando es necesario desechar contenido web generado dinámicamente por JavaScript. Selenium puede simular el comportamiento del usuario en el navegador, como hacer clic, ingresar texto y obtener elementos de la página web.

Ejemplo de raspado web dinámico de Python

Primero, asegúrese de tener Selenium instalado. Si no, puedes instalarlo mediante pip:

pip install selenium

También debe descargar el WebDriver para el navegador correspondiente. ‌Suponiendo que usemos el navegador Chrome,‌ debe descargar ChromeDriver y asegurarse de que su ruta se agregue a las variables de entorno del sistema,‌ o puede especificar su ruta directamente en el código. ‌

Aquí hay un ejemplo sencillo para obtener el título de una página 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()

Este script abrirá example.com, obtendrá su título y lo imprimirá. ‌

Tenga en cuenta que ‌webdriver_manager es una biblioteca de terceros que administra automáticamente las versiones de WebDriver. ‌Si no desea utilizarlo, también puede descargar WebDriver manualmente y especificar la ruta. ‌

Las páginas web dinámicas pueden incluir contenido renderizado en JavaScript. ‌selenium puede esperar a que estos elementos se carguen antes de operar, lo cual es muy adecuado para procesar este tipo de páginas web. ‌

Establecer proxy al extraer páginas web dinámicas en Python

Cuando usas Python para rastrear páginas web dinámicas, a menudo usas un proxy. El uso de un proxy evita muchos obstáculos, por un lado, y acelera la eficiencia del trabajo, por otro.

Hemos introducido la instalación de selenio arriba. Además, también debe descargar el WebDriver del navegador correspondiente y asegurarse de que su ruta se agregue a las variables de entorno del sistema, o puede especificar su ruta directamente en el código.
Después de completar los pasos anteriores, podemos configurar el proxy y eliminar páginas web dinámicas:

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()

En este ejemplo, ‌--proxy-server=http://your_proxy_ip:port es el parámetro para configurar el proxy.‌ Debe reemplazar your_proxy_ip y port con la dirección IP y el número de puerto del servidor proxy que realmente usar

Si su servidor proxy requiere autenticación,‌ puede utilizar el siguiente formato:‌

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

Donde nombre de usuario y contraseña son el nombre de usuario y la contraseña de su servidor proxy. ‌

Después de ejecutar el código anterior, ‌selenium accederá a la página web de destino a través del servidor proxy configurado‌ e imprimirá el título de la página web. ‌
¿Cómo especificar la ruta a ChromeDriver?
ChromeDriver es parte de Selenium WebDriver. Interactúa con el navegador Chrome a través de la API WebDriver para implementar funciones como pruebas automatizadas y rastreadores web. ‌
Especificar la ruta de ChromeDriver implica principalmente la configuración de variables de entorno. ‌Estos son los pasos específicos: ‌
1. Encuentre la ubicación de instalación de Chrome
Puede encontrarlo haciendo clic derecho en el acceso directo de Google Chrome en el escritorio y seleccionando "Abrir ubicación del archivo". ‌
2. Agregue la ruta de instalación de Chrome a la variable de entorno del sistema Ruta
Esto permite que el sistema reconozca ChromeDriver en cualquier ubicación. ‌
3. Descargue y descomprima ChromeDriver
Asegúrese de descargar el ChromeDriver que coincida con la versión del navegador Chrome y descomprímalo en un programa exe. ‌
4. Copie el archivo exe de ChromeDriver a la ruta de instalación de Chrome
De esta manera, cuando necesites utilizar ChromeDriver, el sistema podrá reconocerlo y llamarlo automáticamente

Lo anterior es la aplicación de selenium y webdriver en el rastreo web dinámico de Python y cómo evitarlo al rastrear páginas web. Por supuesto, también puedes practicar operaciones reales a través de los ejemplos anteriores.

Declaración de liberación Este artículo se reproduce en: https://dev.to/lewis_kerr_2d0d4c5b886b02/python-dynamic-web-scraping-example-application-of-selenium-and-webdriver-3330?1 Si hay alguna infracción, comuníquese con Study_golang@163 .com para eliminarlo
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3