Escoller un proxy de Requests para un só sitio web
Dalle a un nome de host de destino un proxy distinto en Requests e comprende os límites de coincidencia e a orde de reserva.
Un sitio web necesita un proxy distinto do resto das túas peticións HTTPS. Requests pode expresar esa escolla no propio dicionario 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 gaña a clave específica do nome de host. Outro nome de host HTTPS usa a entrada xeral de esquema. Os valores describen a conexión do proxy, así que un destino HTTPS pode asignarse correctamente a un URL de proxy HTTP. Cando se trata de rutas permitidas de sitios públicos sen contas de proxy, a lista de proxies HTTP pode fornecer candidatos para eses valores; mantén explícita cada regra de destino.
Coincide cun nome de host, non cun URL de recurso
En Requests 2.32.5, a clave específica constrúese a partir do esquema do destino e do nome de host analizado. Non contén a ruta, a consulta nin o porto.
Engadir /monthly á clave do dicionario non restrinxirá a regra a esa ruta. Do mesmo xeito, https://reports.example:8443 non é unha clave específica de porto que recoñeza este selector. A regra do nome de host tamén se aplica cando o URL de destino usa outro porto.
Nesta busca non hai expansión de comodíns. Unha regra para reports.example non cobre automaticamente un subdominio. Usa unha decisión de enrutamento explícita fóra deste dicionario simple cando a política necesite coincidencia de ruta, porto ou sufixo.
Saber que reserva vén despois
A implementación comproba as claves nesta orde: scheme://hostname, scheme, all://hostname e despois all. Por tanto, unha entrada HTTPS xeral de esquema ten prioridade sobre unha entrada de nome de host para todos os esquemas. Pon unha regra de nome de host específica de esquema primeiro no teu deseño cando esa sexa a excepción desexada.
Ten en conta tamén como a túa Session combina os valores predeterminados e a configuración derivada da contorna. Pasar estas dúas entradas explícitas coa petición deixa claras as súas rutas previstas, pero non define unha política para calquera outro esquema de destino.
Unha redirección pode introducir outro nome de host, e a selección de proxy tamén é relevante para ese novo destino. Le a regra como unha decisión sobre cada URL que se solicita, non como unha ruta permanente ligada á primeira páxina.