Scegliere un proxy Requests per un singolo sito web
Assegna a un nome host di destinazione un proxy diverso in Requests e comprendi i limiti di corrispondenza e l'ordine di fallback.
Un sito web ha bisogno di un proxy diverso dal resto delle tue richieste HTTPS. Requests può esprimere questa scelta nel dizionario dei proxy stesso:
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()
Per quella destinazione vince la chiave specifica del nome host. Un altro nome host HTTPS usa la voce valida per l'intero schema. I valori descrivono la connessione al proxy, quindi una destinazione HTTPS può essere mappata correttamente su un URL di proxy HTTP. Quando si tratta di route consentite di siti pubblici senza account proxy, l'elenco dei proxy HTTP può fornire candidati per quei valori; mantieni esplicita ogni regola di destinazione.
Abbina un nome host, non un URL di risorsa
In Requests 2.32.5 la chiave specifica viene costruita dallo schema della destinazione e dal nome host analizzato. Non contiene il percorso, la query o la porta.
Aggiungere /monthly alla chiave del dizionario non limiterà la regola a quel percorso. Allo stesso modo, https://reports.example:8443 non è una chiave specifica per la porta che questo selettore riconosca. La regola del nome host vale anche quando l'URL di destinazione usa un'altra porta.
In questa ricerca non c'è espansione con caratteri jolly. Una regola per reports.example non copre automaticamente un sottodominio. Usa una decisione di routing esplicita fuori da questo semplice dizionario quando la politica richiede corrispondenza di percorso, porta o suffisso.
Sapere quale fallback arriva dopo
L'implementazione controlla le chiavi in questo ordine: scheme://hostname, scheme, all://hostname, poi all. Quindi una voce HTTPS valida per lo schema ha la precedenza su una voce del nome host per tutti gli schemi. Metti una regola del nome host specifica dello schema per prima nel tuo progetto quando è quella l'eccezione voluta.
Considera anche come la tua Session unisce i valori predefiniti e le impostazioni derivate dall'ambiente. Passare queste due voci esplicite con la richiesta rende chiare le loro route previste, ma non definisce una politica per ogni altro schema di destinazione.
Un reindirizzamento può introdurre un altro nome host, e la scelta del proxy è rilevante anche per quella nuova destinazione. Leggi la regola come una decisione su ogni URL richiesto, non come una route permanente legata alla prima pagina.