
Planteamientos básicos para la configuración del proxy de Scrapy
Crawler hermanos saben que el sitio web mecanismo anti-escalada es cada vez más pervertido. Hoy vamos a fastidiar cómo utilizar Scrapy viene con la función de proxy para salvar la vida. Directamente en los productos secos, la configuración de proxy de Scrapy de hecho, dos golpes:Cambia el archivo de configuración de los ajustes o juega con el middleware..
Empecemos con la gracia salvadora, añadiendo estas dos líneas a settings.py:
DOWNLOADER_MIDDLEWARES = {
scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 400,
}
HTTPPROXY_ENABLED = Verdadero
Esto equivale a poner un interruptor de proxy en el rastreador, pero no es suficiente. La cuestión es que tienes que meter la dirección del proxy en la petición. Por ejemplo, con el proxy residencial dinámico de ipipgo, el formato es el siguiente:
yield scrapy.Request(
url, meta={'proxy': ''}
meta={'proxy': 'http://用户名:密码@gateway.ipipgo.com:9020'}
)
Una forma elegante de jugar al middleware
El método anterior es adecuado para un juego pequeño, realmente quiere jugar un grande en el middleware. Vamos a escribir nuestra propia ProxyMiddleware, aquí es una trampa que prestar atención a---.Estrategia de rotación para grupos de IP proxy. Cuando se utiliza la API de ipipgo para obtener proxies, se recomienda cambiar la IP para cada solicitud para una mayor tasa de supervivencia.
Ejemplo de código real:
importar random
from ipipgo_api import get_proxies Este es el hipotético SDK oficial para ipipgo_.
clase RandomProxyMiddleware.
def process_request(self, request, spider): proxy_list = get_proxies('web_scroll_list')
proxy_list = get_proxies('web_scraping') llamar a la interfaz de ipipgo
proxy = random.choice(lista_proxy)
request.meta['proxy'] = f "http://{proxy['auth']}@{proxy['ip_port']}"
Recuerda activar este middleware en ajustes y establecer la prioridad en torno a 500 o así para un mejor ajuste. De esta manera, cada petición se enganchará automáticamente a un proxy diferente, y el sistema anti-escalada será básicamente ciego.
Una guía para evitar el abismo (Lecciones sobre las lágrimas)
He aquí algunos campos de minas habituales en los que se meten los novatos:
| bache | postura correcta |
|---|---|
| Fallo de autenticación proxy | Manejo de símbolos especiales con comillas en urllib.parse |
| El sitio web HTTPS no se conecta | La dirección del proxy debe ser https://开头 |
| tiempo de respuesta lento | Vaya con ipipgo.Uso exclusivo de líneas de alta velocidad |
Sesión práctica de control de calidad
P: ¿Qué debo hacer si el agente suele fallar de repente?
R: Por eso es importante utilizar el pool de IPs dinámicas de ipipgo, su detección de supervivencia se actualiza en una escala de 5 segundos y filtra automáticamente los nodos fallidos.
P: ¿Necesito varios subprocesos con distintos proxies al mismo tiempo?
R: Basta con dar a cada solicitud un proxy separado en el middleware, Scrapy se encargará de la concurrencia por sí mismo.
P: ¿Qué debo hacer si encuentro un sitio web que me pide un código de verificación?
R: Esta situación no es suficiente para cambiar la IP, se recomienda cooperar con ipipgo'sProxy residencial + enmascaramiento del encabezado de la solicitudque ha sido probado personalmente para reducir la tasa de activación de CAPTCHA de 90%.
Por qué recomendar ipipgo
Sinceramente, hay una plétora de proveedores de servicios proxy en el mercado. Pero cualquiera que se dedique a rastrear sabe queAgencia Residencial High StashEs el rey. Los tres mejores asesinos de ipipgo:
- IP dinámica residencial en más de 200 ciudades de todo el país
- Conmutación IP a nivel de petición única (los demás son a nivel de minuto)
- Mecanismo de reintento de fallo y autofusible.
Especialmente suSistema inteligente de rutasEl mejor nodo de exportación puede coincidir automáticamente con el sitio web de destino. La última vez que hubo un proyecto de comercio electrónico, la tasa de éxito de la utilización de agentes ordinarios es menos de 30%, corte a ipipgo directamente se disparó a 85%, el director del proyecto casi me dio una pancarta.
Por último, un consejo: no pierdas el tiempo en el agente libre, el bloqueo de la IP es un asunto menor, o para comer la carta de un abogado. Cosas profesionales a personas profesionales, esta cuota de agente en comparación con el riesgo del proyecto, realmente nada.

