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.
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.
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.
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.
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