Výber proxy Requests pre jednu webovú lokalitu
Priraďte jednému cieľovému hostnameu inú proxy v Requests a pochopte hranice párovania a poradie záložných možností.
Jedna lokalita potrebuje inú proxy než zvyšok vašich HTTPS požiadaviek. Requests môže túto voľbu vyjadriť priamo v slovníku proxy:
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()
Pre tento cieľ vyhráva kľúč špecifický pre hostname. Iný HTTPS hostname použije záznam platný pre celú schému. Hodnoty opisujú pripojenie k proxy, takže HTTPS cieľ sa môže správne mapovať na URL HTTP proxy. Ak ide o povolené trasy verejných lokalít bez proxy účtov, zoznam HTTP proxy môže pre tieto hodnoty dodať kandidátov; každé pravidlo cieľa držte explicitné.
Párujte hostname, nie URL zdroja
V Requests 2.32.5 sa konkrétny kľúč zostavuje zo schémy cieľa a analyzovaného hostname. Neobsahuje cestu, dopyt ani port.
Pridanie /monthly do kľúča slovníka neobmedzí pravidlo na túto cestu. Rovnako https://reports.example:8443 nie je kľúč špecifický pre port, ktorý by tento selektor rozpoznal. Pravidlo hostname platí aj vtedy, keď URL cieľa používa iný port.
V tomto vyhľadávaní nie je rozširovanie zástupných znakov. Pravidlo pre reports.example automaticky nepokrýva subdoménu. Keď zásady vyžadujú párovanie cesty, portu alebo prípony, použite explicitné rozhodnutie o smerovaní mimo tohto jednoduchého slovníka.
Vedzte, ktorá záložná možnosť nasleduje
Implementácia kontroluje kľúče v tomto poradí: scheme://hostname, scheme, all://hostname a potom all. Záznam HTTPS platný pre schému má teda prednosť pred záznamom hostname pre všetky schémy. Ak je to zamýšľaná výnimka, dajte vo svojom návrhu pravidlo hostname špecifické pre schému na prvé miesto.
Zohľadnite aj to, ako vaša Session spája predvolené hodnoty a nastavenia odvodené z prostredia. Odovzdanie týchto dvoch explicitných záznamov s požiadavkou zjasní ich zamýšľané trasy, ale nedefinuje zásadu pre každú inú schému cieľa.
Presmerovanie môže zaviesť iný hostname a výber proxy je relevantný aj pre tento nový cieľ. Čítajte pravidlo ako rozhodnutie o každej požadovanej URL, nie ako trvalú trasu pripútanú k prvej stránke.