Dentro de Scrapy shell, construye la solicitud que quieres que haga el descargador:

from scrapy import Request

fetch(Request(
    "https://www.example.com/",
    meta={"proxy": "http://proxy.example:8080"},
))
response.status

HttpProxyMiddleware lee el valor de proxy de los metadatos de ese Request. Debe estar habilitado en la configuración del middleware de descarga activo. La variable response posterior pertenece a esta consulta. Para esta URL pública, elige una dirección HTTP sin autenticación de la lista de proxies HTTP si se permiten intermediarios públicos, y luego coloca su URL en los metadatos de proxy de esa solicitud.

Iniciar el shell desde el proyecto de Scrapy le permite cargar la configuración de ese proyecto. Eso elige el middleware y otros ajustes; no elige por sí mismo un punto final de proxy concreto. Los metadatos de la solicitud anteriores proporcionan esa elección directamente.

Para un proxy que usa credenciales Basic, Scrapy documenta la información de usuario en la URL del proxy. Codifica los caracteres reservados en los componentes de la cuenta antes de construirla. No es necesario añadir una cabecera Authorization del sitio web para esa cuenta.

Scrapy también puede descubrir proxies a partir de sus variables de entorno compatibles. Los metadatos de proxy explícitos de una solicitud tienen prioridad. Para una solicitud deliberadamente directa, un valor de proxy None desactiva la selección basada en el entorno de ese middleware para la solicitud.

Artículos relacionados