Python Requests Session проксилери жана чөйрөнүн артыкчылыгы
session.proxies, чөйрө өзгөрмөлөрү, суроо жөндөөлөрү жана trust_env бирге иштегенде Python Requests багытын алдын ала билүүгө шарт түзүңүз.
session.proxies бир чекитти көрсөтүп, бирок скрипт кабыктын проксисин колдонсо, ошол сөздүктү кайра ыйгаруу карама-каршылыкты чечпейт. Requests чөйрөнүн прокси жөндөөлөрүн Session демейкилеринен артык кылып бириктире алат. Session чөйрөдөн жөндөө табууну улантабы, ошону тандаңыз.
Чөйрөдөн аныктоону сактап, жолдорду суроодо бериңиз
Бул Session/чөйрө карама-каршылыгын болтурбоо үчүн Requests сунуштагандай өзүнчө чакырууга так маанилерди бериңиз:
proxies = {
"http": "http://127.0.0.1:8080",
"https": "http://127.0.0.1:8080",
}
with requests.Session() as session:
response = session.get(
"https://example.com/",
proxies=proxies,
timeout=(5, 15),
)
response.raise_for_status()
Жергиликтүү угуучуну өзүңүздүкүнө алмаштырыңыз. Коомдук HTTP чекиттерин салыштырсаңыз, Session саясатын өзгөртпөй HTTP проксилердин тизмесинен талапкерлерди тандаңыз. Бул берилген дал келтирүү жазууларын башкарат; тиркеменин башка схемалары же хосттору үчүн да аң-сезимдүү тандаңыз. Кызмат, IDE, контейнер же CI аткаруучу терминалдан башка чөйрөнү мурасташы мүмкүн.
Session өз жөндөөлөрүн башкарсын
Тиркеме чөйрөдөн прокси таппашы керек болсо, саясатты биринчи суроого чейин коюңуз:
with requests.Session() as session:
session.trust_env = False
session.proxies = {
"http": "http://127.0.0.1:8080",
"https": "http://127.0.0.1:8080",
}
response = session.get(
"https://example.com/",
timeout=(5, 15),
)
response.raise_for_status()
trust_env=False чөйрөгө байланыштуу сертификат жөндөөлөрүнө жана автоматтык netrc аутентификациясына да таасир этет. Тандоодо бул көз карандылыктарды эске алыңыз. Бекитилген жеке CA сертификаттар топтомуна так жол бере аласыз:
response = session.get(
"https://example.com/",
timeout=(5, 15),
verify="/path/to/approved-ca-bundle.pem",
)
Чындап бекитилген топтомду колдонуп, текшерүүнү күйгүзүлгөн бойдон калтырыңыз. Башка иштер колдонгон бир Session-ды өзгөртпөй, ар бир багыт саясатына өзүнчө Session сактаңыз.
Эки вариант тең тиркеме жолун түшүндүрбөсө, обочолонгон Session-ды тиркеме менен бирдей аткаруу чөйрөсүндө жана зыянсыз максатта салыштырыңыз. Бар прокси өзгөрмөлөрүн, trust_env маанисин жана чакыруу proxies берерин жазыңыз; кирүү маалыматтуу URL-дерди жалпы журналга кошпоңуз. Обочодогу ийгилик кийинки текшерүүнү Session түзүүгө, адаптерлерге, даярдалган суроо агымдарына же өз транспортторуна багыттайт. curl чөйрө сыноосу Requests-тин өз бириктирүү жүрүмүн аныктабайт.