Proxies por solicitud con el middleware de proxy HTTP de Scrapy
Use los metadatos de solicitud de Scrapy y su middleware de proxy antes de copiar un middleware de autenticación personalizado antiguo en un rastreador.
El middleware de proxy HTTP de Scrapy lee un proxy de los metadatos de la solicitud:
yield scrapy.Request(
'https://example.com/',
callback=self.parse,
meta={'proxy': 'http://203.0.113.10:8080'},
)
Sustituya el endpoint de la documentación y mantenga el middleware habilitado. La lista de proxies HTTP ofrece candidatos públicos para la URL de esta solicitud. Esto selecciona la ruta de la solicitud; un grupo de proxies necesita una lógica de selección aparte.
La autenticación sigue al endpoint seleccionado
El middleware integrado gestiona las credenciales proporcionadas mediante su URL de proxy compatible y la cabecera de autorización asociada. Escape los caracteres reservados de la URL y evite registrar esa URL.
Un middleware separado no debería conservar una cabecera Basic para el proxy anterior después de que cambie el endpoint. Deje que una sola capa gestione la ruta y sus credenciales juntas.
Orden de selección y valores predeterminados
Si un middleware de descarga personalizado elige el proxy, ejecútelo antes de que el middleware de proxy integrado procese la solicitud. Compruebe el orden y la API de la versión instalada; las importaciones scrapy.contrib obsoletas pertenecen a versiones anteriores.
El entorno del proceso también puede proporcionar valores predeterminados específicos por esquema. Para una solicitud deliberadamente directa, use el comportamiento especial documentado de los metadatos proxy: una clave ausente no significa necesariamente acceso directo.
Inspeccione el resultado real. Un 407 se refiere a la autenticación del proxy, mientras que un límite de velocidad o una denegación de acceso del sitio web pueden llegar después de que la ruta haya funcionado correctamente.