
¿Cuando los rastreadores se encuentran con las ventanas emergentes de validación? Pruebe esta combinación
El otro día, Wang estaba usando BeautifulSoup para escribir un rastreador, y de repente se encontró que el sitio de destino apareció un CAPTCHA - bueno, la IP fue bloqueada de nuevo. En este caso, hacemos rastreo de datos saben, esta vez el proxy IP en la escena para salvar la emergencia. Hoy vamos a fastidiar cómo hacer BeautifulSoup y proxy IP con el trabajo.
Funcionamiento básico: tres líneas de código para la captura de texto
En primer lugar, la operación más básica BeautifulSoup, al hermano que acaba de empezar a hacer una muestra:
importar peticiones
from bs4 import BeautifulSoup
resp = requests.get('http://目标网站')
soup = BeautifulSoup(resp.text, 'html.parser')
print(soup.get_text())
El código se ve bien, pero funciona a las mil maravillas. ¿Por qué? Ahora el sitio está bien, incluso solicitar tres o cinco veces de inmediato le dan IP negro.
Poner una capa de invisibilidad a un reptil
Es entonces cuando necesitas una IP proxy para cubrirte. Toma como castaña el servicio de ipipgo, su pool de IPs dinámicas es lo suficientemente grande y fácil de cambiar. Cambia el código más proxy:
proxies = {
'http': 'http://用户名:密码@gateway.ipipgo.com:9020',
https: http://用户名:密码@gateway.ipipgo.com:9020
}
resp = requests.get('http://目标网站', proxies=proxies, timeout=10)
centroAquí para utilizar la dirección de túnel exclusivo proporcionado por ipipgo, otros canales pueden no ser estables. Cada uno de su IP proxy se puede utilizar durante un máximo de 5 minutos, conmutación automática este punto es particularmente libre de preocupaciones.
Consejos para contrarrestar la escalada
Que no cunda el pánico ante estas situaciones:
- Volver de repente a una página en blanco → Cambiar IP
- Ir a la página CAPTCHA → reducir la frecuencia de solicitudes
- Devolver error 403 → Comprobar la configuración del encabezado de la solicitud
Se recomienda esta combinación de configuraciones:
| parámetros | valor recomendado |
|---|---|
| tiempo de espera | 8-15 segundos |
| Reintentos | 3 veces |
| concurrencia | ≤5 hilos |
Blanco Preguntas más frecuentes
P: ¿He utilizado un proxy o me han bloqueado?
R: Compruebe dos cosas: 1. si el proxy es efectivo 2. si la cabecera de la petición con las huellas del navegador
P: ¿Cómo cobra ipipgo?
R: Tienen facturación por horas y por tráfico, y los nuevos registros obtienen 1G de tráfico de experiencia, que es suficiente para las pruebas.
P: ¿Qué debo hacer si el texto extraído es ilegible?
R: Especifique la codificación en BeautifulSoup:
soup = BeautifulSoup(resp.content, 'html.parser', from_encoding='gb18030')
Juego de actualización: arquitectura de adquisición distribuida
Este emparejamiento se recomienda cuando se requiere una recogida a gran escala:
1. Tareas de programación del nodo maestro
2. Múltiples nodos crawler obtienen diferentes IPs de salida a través de ipipgo.
3. Actualización en tiempo real de la base de datos de IP proxy disponibles
4. Reasignación automática de tareas fallidas a nuevos nodos
Por último, el proxy IP no es una panacea, con el control de frecuencia de solicitud, encabezado de la solicitud disfrazar estos medios. Recientemente encontrado ipipgo fondo puede ver directamente el tiempo de supervivencia de cada IP, esta característica es muy útil para la depuración. ¡Tenemos lo encontrado en el combate real de problemas extraños, bienvenidos a intercambiar ~!

