
Cómo poner un chaleco de agente en Scrapy
Crawler hermanos entender, no con un proxy es como un desnudo de Internet, minutos por el sitio bloqueado IP. hoy tomamos Scrapy para abrir el cuchillo, decir cómo darle a llevar un buen chaleco de proxy. Aquí para utilizar su propio servicio de proxy ipipgo ejemplo, pro-prueba eficaz no tirar falsa.
Los tres ejes de configuración del proxy de Scrapy
Empecemos por el método de configuración más sencillo para los novatos:
Añadir el material en settings.py
DOWNLOADER_MIDDLEWARES = {
scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 543,
}
Conecte el proxy en la solicitud específica
yield scrapy.Request(
url, meta={'proxy': 'proxy')
meta={'proxy': 'http://username:password@proxy.ipipgo.com:8000'}
)
este tipo deMétodo de codificación duraEs adecuado para pruebas temporales, si lo usas durante mucho tiempo, tienes que cambiar de forma inteligente. En la práctica, he encontrado que escribir un proxy muerto directamente en la configuración es fácil ser blanco de los mecanismos anti-crawling.
Los proxy pools dinámicos son el rey
Los jugadores avanzados usan proxies rotatorios, y aquí recomendamos usar la API de ipipgo para obtenerlos dinámicamente:
importar aleatorio
clase ProxyMiddleware.
def process_request(self, request, spider): proxy_list = get_ipipgo_proxies() call ipipgo API interface.
proxy_list = get_ipipgo_proxies() llamar a la interfaz API de ipipgo.
proxy = random.choice(lista_proxy)
request.meta['proxy'] = f "http://{proxy['ip']}:{proxy['port']}"
request.headers['Proxy-Authorisation'] = basic_auth_header(
proxy['usuario'], proxy['contraseña']
)
Tenga cuidado al manipularlo.Conmutación automática por fallo de proxySugiero añadir un mecanismo de reintento en el manejo de excepciones. La API de ipipgo tiene un buen tiempo de respuesta, y tarda milisegundos en obtener un nuevo proxy.
La puerta de entrada en el archivo de configuración
Los controladores más antiguos hacen su trabajo en settings.py y recomiendan paquetes de configuración:
| elemento de configuración | valor recomendado |
|---|---|
| SOLICITUDES_CONCURRENTES | Ajustado para paquetes proxy (30-50 recomendado para proxies dinámicos) |
| TIEMPO_DESCARGA | Establecer 15-30 segundos es más seguro |
| RETRY_TIMES | Sugerir 3 reintentos para mantenerse a salvo |
Registro de dificultades reales
Me he encontrado con la situación más lamentable: el agente obviamente funciona, pero el rastreador simplemente no puede conectarse. Más tarde, descubrí que eraAutenticación SSLMaldita sea, añadiendo este parámetro a la petición se soluciona inmediatamente:
request.meta['download_timeout'] = 30
request.meta['proxy'] = 'https://...' Observa el tipo de protocolo
request.meta['dont_redirect'] = True Evita que las redirecciones caigan del proxy
Preguntas frecuentes Botiquín de primeros auxilios
P: ¿Qué debo hacer si el agente falla de repente?
R: Añade captura de excepciones en el middleware para extraer automáticamente nuevos agentes de ipipgo. Se recomienda activar el proxy health check y expulsar el pool a tiempo si se estropea.
P: ¿Se arrastra como una tortuga?
R: Comprueba el tipo de paquete proxy. Dynamic Residence (Enterprise Edition) es 30% más rápido que Standard Edition, si tienes suficiente presupuesto para ir directamente a Static Residence, la velocidad volará.
P: ¿Siempre se encuentra con CAPTCHA?
R: Cambie a usar el proxy de línea especial TK de ipipgo, este tipo de IP residencial es menos probable que active la verificación. La prueba real después de usar este código de verificación de línea dedicada apareció tasa cayó 70%.
Cómo elegir un paquete ipipgo
Comparación de paquetes de recomendaciones personales:
- Oruga de pequeña escala: residencial dinámico (estándar) 7,67 yuanes / GB, ahorrar lo suficiente para hacer uso de la
- ¡Proyectos de nivel empresarial: directamente en el residencial estática 35 yuanes / IP, estable y no tirado!
- Necesidades especiales: línea especial transfronteriza para hacer frente a las restricciones geográficas del lugar, quién utiliza quién sabe
Finalmente dijo un hueco: configuración de proxy no es una cosa de una sola vez, de acuerdo con el sitio de destino estrategia anti-escalada ajuste flexible. Hermanos con ipipgo recordar a vivir con sus servicios personalizados, servicio técnico al cliente puede ayudar a ajustar la referencia, que su propio ciego tirar mucho más fuerte.

