Вибір проксі 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, а не як постійний маршрут, прив'язаний до першої сторінки.