
Enseñanza práctica del uso de Selenium + proxy IP para capturar páginas web dinámicas
que participan en el rastreo web saben que ahora más y más sitios están empezando a utilizar JavaScript para cargar el contenido de forma dinámica. Hace un par de días ayudé a un amigo para coger los datos de precios de una plataforma de comercio electrónico, con las peticiones ordinarias biblioteca simplemente no puede obtener los datos completos, esta vez me acordé de salir del Selenio este asesino.
¿Por qué es difícil trabajar con páginas web dinámicas?
Ahora muchos sitios son como muñecas rusas de anidación, la solicitud inicial sólo da una página de shell vacío, el contenido real que esperar a la finalización de la ejecución de JS se cargará. Para dar una castaña, la información de precios de alguna página de detalle de los productos básicos que esperar 3 segundos antes de cargar a través de la interfaz, esta vez el rastreador tradicional es estúpido.
Este es el momento de utilizar una herramienta de navegador que puede simular el funcionamiento de una persona real, como Selenium, pero el problema es - muchos sitios son particularmente sensibles al acceso automatizado, el funcionamiento frecuente de los minutos de bloqueo de IP. la semana pasada probé el bloqueado consecutivamente cinco IPs, por lo que casi rompió el teclado.
¿Cómo salvan vidas las IP proxy?
Aquí es donde entra en juego.IP proxyEsta arma mágica. El principio es muy simple: cada solicitud de una dirección IP diferente, por lo que el sitio piensa que es un usuario diferente para visitar. Pero prestar atención a la elección del tipo de proxy:
| Tipo de agente | Grado de anonimato | Escenarios aplicables |
|---|---|---|
| Agente transparente | más bajo | Es básicamente inútil. |
| Agente anónimo | moderado | anti-sellado general |
| Agentes High Stash | supremo | opción recomendada |
Esto es imprescindible.El proxy dedicado High Stash de ipipgoSu grupo de IP se actualiza rápidamente, y lo he probado durante 24 horas de recolección continua sin desencadenar una prohibición. Especialmente su función de autenticación dinámica, que el método tradicional de nombre de usuario y contraseña es demasiado conveniente.
Práctica de proxy de configuración de Selenium
Tomemos Chrome como ejemplo, el código clave se escribe así (recuerde instalar primero chromedriver):
from selenium import webdriver
proxy = "http://user:pass@gateway.ipipgo.com:9020" dirección proxy proporcionada por ipipgo
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument(f'--proxy-server={proxy}')
Evitar ser reconocido como herramienta de automatización
chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"])
chrome_options.add_argument("--disable-blink-features=AutomationControlled")
controlador = webdriver.Chrome(opciones=opciones_cromo)
driver.get("https://目标网站.com")
Tenga en cuenta algunas paradas en boxes:
1. En la dirección del proxynúmero de puertoNo te equivoques, los puertos pueden ser diferentes para distintos paquetes.
2. Se propone añadirDesactivar funciones de automatizaciónespecificaciones
3. Es mejor aleatorizar el tiempo entre operaciones que hacer que parezca un robot.
Preguntas frecuentes QA
P: Obviamente, utilicé una IP proxy, ¿pero aun así me bloquearon?
R: Compruebe si está utilizando un gran alijo de proxies, los proxies transparentes filtrarán la IP real, recomendamos cambiar a los proxies de nivel empresarial de ipipgo, con función de rotación automática de IP.
P: ¿Qué debo hacer si Selenium empieza a funcionar con especial lentitud?
R: Prueba el modo headless con estas dos líneas:
chrome_options.add_argument("--headless")
chrome_options.add_argument("--disable-gpu")
Q:¿Cómo resolver el problema de los sitios web que piden CAPTCHA?
R: Control razonable de la frecuencia de recogida, ipipgo IP calidad es buena si el básico no se disparará el código de verificación. Realmente encontrado puede acceder a la plataforma de codificación, pero el costo sube.
Consejos de mantenimiento
Si va a realizar un proyecto de recogida a largo plazo, se recomienda obtener unMecanismo de comprobación de la salud de IP. Mi método sucio es visitar https://ip.ipipgo.com/checkip cada media hora y alertar inmediatamente si devuelve algo que no sea una IP proxy.
Por último, ¡no escriba una dirección proxy muerta en su código! Es mejor obtenerlas dinámicamente a través de una interfaz. La API de ipipgo soporta obtener los últimos proxies en tiempo real por volumen, de forma que incluso si una determinada IP se cuelga, puede ser cambiada automáticamente.
Hace poco descubrí que algunos sitios web detectan las huellas dactilares de los navegadores, que pueden cambiar aleatoriamente en cada inicioUsuario-AgenteEl efecto de camuflaje se tira directamente lleno de, y luego con IP proxy móvil de ipipgo. ¡Bueno, los productos secos de hoy en el verter tanto, hay preguntas específicas bienvenidos a burlarse ~!

