کله چې یو urllib opener باید مستقیم ونښلي، ProxyHandler ته تشه نقشه ورکړئ:

from urllib.request import ProxyHandler, build_opener

direct = build_opener(ProxyHandler({}))

with direct.open("https://example.com/", timeout=10) as response:
    print(response.status)

تشه ډکشنري هېڅ پراکسي لاره نه برابروي. د نقشې نه ورکول بیا هینډلر ته اجازه ورکوي چې پراکسۍ له چاپېریال او د پلاتفورم له تنظیمونو ومومي. د جوړولو دا دوه لارې بېلابېلې تګلارې څرګندوي.

بېلګه د Python معیاري کتابتون کاروي او عادي HTTPS تایید ساتي. with بلاک ځواب بندوي، هغه مهال هم چې استثنا له بلاکه د وتلو لامل شي.

په یوه اپلېکېشن کې مستقیمې او د پراکسي له لارې غوښتنې

دوه opener د دوو تګلارو د ساتلو توان لري، بې له دې چې د بلنو ترمنځ د چاپېریال متغیرونه بدل شي:

from urllib.request import ProxyHandler, build_opener

direct = build_opener(ProxyHandler({}))
proxied = build_opener(ProxyHandler({
    "http": "http://127.0.0.1:8080",
    "https": "http://127.0.0.1:8080",
}))

with proxied.open("https://example.com/", timeout=10) as response:
    print(response.status)

د loopback پته په خپل HTTP پراکسي بدله کړئ یا د پراکسي د پرتله کولو لپاره د HTTP پراکسي لېست څخه یو نوماند غوره کړئ. که خدمت اجازه ورکړي، د HTTPS موخې اړیکه د CONNECT له لارې لېږدولای شي. د اورېدونکي پروتوکول او د هویت تایید ملاتړ باید له هینډلر سره برابر وي.

ډیفالټ opener مه بدلوئ

direct.open یا proxied.open د هغې ابجیکټ له لارې راوبلئ چې د لارې مسؤل دی. install_opener د ټولې پروسې هغه ډیفالټ بدلوي چې د urllib اسانه بلنې یې کاروي؛ نو کتابتون چې دا کاروي پر نامربوط کوډ اغېز کولای شي. د پورتني جلا opener لپاره اړتیا ورته نشته.

timeout ارګومېنټ د یوه عملیاتو تنظیم دی، د هر لېږد د ټول تېر شوي واقعي وخت حد نه دی. یوازې د کار اړتیا وړ معلومات ولولئ او که د ټول وخت بودیجه کلکه وي، په لوړه کچه مهلت وکاروئ.

دا opener ابجیکټونه د بل کتابتون مراجع، موجوده پروسه یا د براوزر پراکسي تنظیمونه نه بدلوي.

اړوندې مقالې