Elegir un proxy de Requests para un solo sitio web
Da a un nombre de host de destino un proxy distinto en Requests y comprende los límites de coincidencia y el orden de reserva.
Un sitio web necesita un proxy distinto del resto de tus peticiones HTTPS. Requests puede expresar esa elección en el propio diccionario de proxies:
routes = {
"https://reports.example": "http://reports-proxy.example:8080",
"https": "http://default-proxy.example:8080",
}
response = requests.get(
"https://reports.example/monthly",
proxies=routes,
timeout=(5, 20),
)
response.raise_for_status()
Para ese destino gana la clave específica del nombre de host. Otro nombre de host HTTPS usa la entrada general de esquema. Los valores describen la conexión del proxy, así que un destino HTTPS puede asignarse correctamente a una URL de proxy HTTP. Cuando se trata de rutas permitidas de sitios públicos sin cuentas de proxy, la lista de proxies HTTP puede aportar candidatos para esos valores; mantén explícita cada regla de destino.
Coincide con un nombre de host, no con una URL de recurso
En Requests 2.32.5, la clave específica se construye a partir del esquema del destino y del nombre de host analizado. No contiene la ruta, la consulta ni el puerto.
Añadir /monthly a la clave del diccionario no restringirá la regla a esa ruta. Del mismo modo, https://reports.example:8443 no es una clave específica de puerto que reconozca este selector. La regla del nombre de host también se aplica cuando la URL de destino usa otro puerto.
En esta búsqueda no hay expansión de comodines. Una regla para reports.example no cubre automáticamente un subdominio. Usa una decisión de enrutamiento explícita fuera de este diccionario simple cuando la política necesite coincidencia de ruta, puerto o sufijo.
Sabe qué reserva viene después
La implementación comprueba las claves en este orden: scheme://hostname, scheme, all://hostname y luego all. Por tanto, una entrada HTTPS general de esquema tiene prioridad sobre una entrada de nombre de host para todos los esquemas. Pon una regla de nombre de host específica de esquema primero en tu diseño cuando esa sea la excepción deseada.
Ten en cuenta también cómo tu Session fusiona los valores predeterminados y la configuración derivada del entorno. Pasar estas dos entradas explícitas con la petición aclara sus rutas previstas, pero no define una política para cualquier otro esquema de destino.
Una redirección puede introducir otro nombre de host, y la selección de proxy también es relevante para ese nuevo destino. Lee la regla como una decisión sobre cada URL que se solicita, no como una ruta permanente ligada a la primera página.