Python urllib․ անջատել պրոքսիները մեկ opener-ի համար
ProxyHandler({})-ով ստեղծեք ուղիղ կապի urllib opener՝ չփոխելով մյուս հաճախորդները կամ գործընթացի միջավայրը։
ProxyHandler-ին փոխանցեք դատարկ արտապատկերում, երբ մեկ urllib opener պետք է միանա անմիջապես։
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)
Հետադարձ կապի հասցեն փոխարինեք ձեր HTTP պրոքսիով կամ պրոքսիով համեմատության համար թեկնածու ընտրեք HTTP պրոքսիների ցանկից։ Այն կարող է HTTPS նպատակակետի կապը փոխանցել CONNECT-ի միջոցով, եթե ծառայությունը թույլ է տալիս։ Լսողի արձանագրությունն ու նույնականացման աջակցությունը պետք է համապատասխանեն մշակիչին։
Մի փոխեք լռելյայն opener-ը
direct.open-ը կամ proxied.open-ը կանչեք երթուղու համար պատասխանատու օբյեկտի միջոցով։ install_opener-ը փոխում է ամբողջ գործընթացի լռելյայն տարբերակը, որն օգտագործում են urllib-ի օժանդակ կանչերը, ուստի այն օգտագործող գրադարանը կարող է ազդել չառնչվող կոդի վրա։ Վերևի մեկուսացված opener-ի համար այն անհրաժեշտ չէ։
timeout արգումենտը գործողության կարգավորում է, ոչ թե յուրաքանչյուր փոխանցման ամբողջ իրական ժամանակի վերջնաժամկետ։ Կարդացեք միայն անհրաժեշտ տվյալները և օգտագործեք ավելի բարձր մակարդակի վերջնաժամկետ, եթե աշխատանքն ունի խիստ ընդհանուր ժամանակային բյուջե։
Այս opener օբյեկտները չեն փոխում այլ գրադարանի հաճախորդը, գոյություն ունեցող գործընթացը կամ դիտարկիչի պրոքսի կարգավորումները։