Einen Requests-Proxy für eine einzelne Website wählen
Geben Sie einem Ziel-Hostnamen in Requests einen anderen Proxy und verstehen Sie die Treffergrenzen und die Fallback-Reihenfolge.
Eine Website braucht einen anderen Proxy als der Rest Ihrer HTTPS-Anfragen. Requests kann diese Wahl im Proxy-Wörterbuch selbst ausdrücken:
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()
Für dieses Ziel gewinnt der hostnamenspezifische Schlüssel. Ein anderer HTTPS-Hostname verwendet den schemaweiten Eintrag. Die Werte beschreiben die Proxy-Verbindung, daher kann ein HTTPS-Ziel korrekt auf eine HTTP-Proxy-URL abgebildet werden. Wenn dies erlaubte Routen öffentlicher Websites ohne Proxy-Konten sind, kann die HTTP-Proxy-Liste Kandidaten für diese Werte liefern; halten Sie jede Zielregel explizit.
Einen Hostnamen abgleichen, keine Ressourcen-URL
In Requests 2.32.5 wird der spezifische Schlüssel aus dem Schema des Ziels und dem geparsten Hostnamen gebildet. Er enthält weder Pfad noch Query noch Port.
Das Hinzufügen von /monthly zum Wörterbuchschlüssel beschränkt die Regel nicht auf diesen Pfad. Ebenso ist https://reports.example:8443 kein portabhängiger Schlüssel, den dieser Selektor erkennt. Die Hostnamen-Regel gilt auch, wenn die Ziel-URL einen anderen Port verwendet.
Bei dieser Suche gibt es keine Platzhalter-Erweiterung. Eine Regel für reports.example deckt nicht automatisch eine Subdomain ab. Verwenden Sie eine explizite Routing-Entscheidung außerhalb dieses einfachen Wörterbuchs, wenn die Richtlinie Pfad-, Port- oder Suffix-Abgleich benötigt.
Wissen, welcher Fallback als Nächstes kommt
Die Implementierung prüft die Schlüssel in dieser Reihenfolge: scheme://hostname, scheme, all://hostname und dann all. Ein schemaweiter HTTPS-Eintrag hat daher Vorrang vor einem Hostnamen-Eintrag für alle Schemata. Setzen Sie eine schemaspezifische Hostnamen-Regel in Ihrem Entwurf an die erste Stelle, wenn dies die beabsichtigte Ausnahme ist.
Berücksichtigen Sie auch, wie Ihre Session Vorgaben und umgebungsbedingte Einstellungen zusammenführt. Diese beiden expliziten Einträge mit der Anfrage zu übergeben, macht ihre beabsichtigten Routen klar, definiert aber keine Richtlinie für jedes andere Ziel-Schema.
Eine Weiterleitung kann einen anderen Hostnamen einführen, und die Proxy-Auswahl ist auch für dieses neue Ziel relevant. Lesen Sie die Regel als Entscheidung über jede angefragte URL, nicht als dauerhafte Route, die an der ersten Seite hängt.