Выбар проксі Requests для аднаго сайта
Дайце аднаму хасту-прызначэнню іншы проксі ў Requests і зразумейце межы супадзення і парадак запасных варыянтаў.
Адзін сайт патрабуе іншага проксі, чым астатнія вашыя HTTPS-запыты. Requests можа выказаць гэты выбар у самім слоўніку проксі:
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()
Для гэтага прызначэння перамагае ключ, спецыфічны для хаста. Іншы HTTPS-хаст выкарыстоўвае агульны запіс па схеме. Значэнні апісваюць злучэнне з проксі, таму HTTPS-прызначэнне можа карэктна адлюстроўвацца на URL HTTP-проксі. Калі гэта дазволеныя маршруты публічных сайтаў без уліковых запісаў проксі, спіс HTTP-проксі можа даць кандыдатаў для гэтых значэнняў; трымайце кожнае правіла прызначэння яўным.
Супастаўляйце хаст, а не URL рэсурсу
У Requests 2.32.5 спецыфічны ключ будуецца са схемы прызначэння і разабранага хаста. Ён не ўтрымлівае шлях, запыт або порт.
Даданне /monthly у ключ слоўніка не абмяжуе правіла гэтым шляхам. Гэтак жа https://reports.example:8443 не з'яўляецца ключом, спецыфічным для порта, які распазнае гэты селектар. Правіла хаста дзейнічае і тады, калі URL прызначэння выкарыстоўвае іншы порт.
У гэтым пошуку няма раскрыцця шаблонаў. Правіла для reports.example не ахоплівае паддомен аўтаматычна. Выкарыстоўвайце яўнае рашэнне маршрутызацыі па-за гэтым простым слоўнікам, калі палітыка патрабуе супадзення шляху, порта або суфікса.
Ведайце, які запасны варыянт ідзе наступным
Рэалізацыя правярае ключы ў такім парадку: scheme://hostname, scheme, all://hostname, затым all. Такім чынам, агульны запіс HTTPS па схеме мае перавагу над запісам хаста для ўсіх схем. Калі гэта і ёсць задуманае выключэнне, стаўце правіла хаста для пэўнай схемы першым у сваім дызайне.
Улічвайце таксама, як ваш Session злівае прадвызначаныя і атрыманыя з асяроддзя налады. Перадача гэтых двух яўных запісаў разам з запытам робіць іх задуманыя маршруты зразумелымі, але не вызначае палітыку для любой іншай схемы прызначэння.
Перанакіраванне можа ўвесці іншы хаст, і выбар проксі таксама актуальны для гэтага новага прызначэння. Чытайце правіла як рашэнне пра кожны запытаны URL, а не як пастаянны маршрут, прывязаны да першай старонкі.