Калі Requests даступны ў праекце, перадайце выкліку супастаўленне проксі:

import requests

proxies = {
    "http": "http://127.0.0.1:8080",
    "https": "http://127.0.0.1:8080",
}

response = requests.get(
    "https://example.com/",
    proxies=proxies,
    timeout=(5, 15),
)
response.raise_for_status()
print(response.status_code)

Замяніце канчатковы пункт зваротнай пятлі працоўным проксі або кандыдатам са спіса HTTP-проксі, якога праверыце гэтым запытам. Ключы апісваюць схемы прызначэння: http для HTTP-URL і https для HTTPS-URL. Значэнні апісваюць пункт праслухоўвання проксі. Гэта могуць быць розныя пункты, калі сетка патрабуе асобных маршрутаў.

Значэнне проксі http:// пад ключом https зададзена наўмысна. Requests просіць HTTP-пункт пра CONNECT-тунэль, а потым усталёўвае праз яго TLS з мэтавым серверам з улікам палітыкі проксі для мэт і партоў. Замена на https:// запытвае TLS з самім проксі; гэта можа не спрацаваць, калі пункт чакае незашыфраваны HTTP.

Што азначаюць два лікі тайм-аўту

timeout=(5, 15) задае тайм-аўты злучэння і чытання. Гэта не агульны тэрмін у пятнаццаць секунд. Перыядычныя ўваходныя даныя, некалькі адрасоў і спробы злучэння могуць павялічыць час. Калі настройку прапусціць, Requests не задае агульнага тайм-аўту. Выбірайце межы паводле адказу і дадавайце канчатковы тэрмін на ўзроўні праграмы, калі патрэбны строгі агульны часавы бюджэт.

Апрацоўвайце памылку на этапе яе ўзнікнення

try:
    response = requests.get(
        "https://example.com/",
        proxies=proxies,
        timeout=(5, 15),
    )
    response.raise_for_status()
except requests.exceptions.ProxyError as error:
    print("Proxy setup failed:", type(error).__name__)
except requests.exceptions.Timeout:
    print("A configured timeout expired")
except requests.exceptions.HTTPError as error:
    print("HTTP status:", error.response.status_code)

Адхілены CONNECT можа выклікаць ProxyError яшчэ да з’яўлення адказу мэты. Галіна HTTPError ідзе пасля атрыманага адказу са статусам памылкі; Timeout азначае заканчэнне зададзенай мяжы. Правярайце ланцужкі выключэнняў злучэння лакальна і перад перадачай выдаляйце канчатковыя пункты з уліковымі данымі і прыватныя URL.

Пакідайце праверку сертыфікатаў уключанай. Калі дазволеная сетка выкарыстоўвае прыватны CA або кіраванае перахопліванне, дайце чаканыя матэрыялы даверу замест выключэння праверкі.

Яўныя запісы асобнага запыту кіруюць пададзенымі тут маршрутамі, але прапушчаныя схемы ўсё яшчэ могуць залежаць ад выяўлення проксі з асяроддзя. Пераносячы выклік у паўторна выкарыстоўваную Session, вызначце, як будуць узаемадзейнічаць зменныя асяроддзя, стандартныя значэнні Session і пераазначэнні запыту; паўторнае выкарыстанне злучэння і палітыка маршрутызацыі — асобныя рашэнні.

Падобныя артыкулы