פֿאַרמייַדן גלאָבאַלע urllib opener ענדערונגען אין פּראָקסי פּרופֿערס
האַלט urllib פּראָקסי פּרופֿן לאָקאַל צו זייער אייגענעם opener אַנשטאָט פֿאַרבייטן פּראָצעס-ברייטע רוטינג און צײַט-לימיטן דיפאָלט.
from urllib.request import ProxyHandler, build_opener
def make_proxy_opener(proxy_uri):
return build_opener(ProxyHandler({
"http": proxy_uri,
"https": proxy_uri,
}))
opener = make_proxy_opener("http://proxy.example.net:8080")
# Use opener.open(destination, timeout=10) for this route.רופֿט די אייגענע open מעטאָד פֿון דעם opener ווען אַ רוטע געהערט צו דער פּרופֿע. דער HTTP ענדפּוינט פֿונעם ביישפּיל קען קומען פֿון אײַער סערוויס אָדער פֿון דער HTTP פּראָקסי ליסטע פֿאַר פּובליקע פּרופֿן. דער פֿראַגמענט ווײַזט באַזיצונג; ער דעפֿינירט נישט די פֿולע אויטענטיפֿיקאַציע אָדער געזונט פּאָליטיק. האַלט יעדער אַקאַונט-ספּעציפֿישער handler באַפֿעסטיקט צו דעם געמיינטן קליענט.
urllib.request.install_opener() ענדערט דעם פּראָצעס-ברייטער דיפאָלט וואָס שפּעטערדיקע urlopen() רופֿן אויף מאָדול-מדרגה ניצן. דעריבער אַ פּרופֿער וואָס דורכגייט פּראָקסיס קען אָפּלאָזן אומפֿאַרבונדענע בקשות ניצן זײַן לעצטן ענדפּוינט. פֿאַרביגעצײַטיק אינסטאַלירן און צוריקשטעלן בײַם אויפֿרוימען לאָזט נאָך אַלץ צוגלײַכצײַטיקע בקשות לויפֿן בעת דער געמיינזאַמער ענדערונג.
socket.setdefaulttimeout() ענדערט ענלעך די דיפאָלטס פֿאַר סאָקעטס וואָס ווערן באַשאַפֿן שפּעטער. ניצט דעם צײַט-לימיט אויף אָפּעראַציע-מדרגה ווען נאָר די פּרופֿע זאָל עס באַקומען.
פֿאַרמאַכט פּרופֿע ענטפֿערס און האַלט די רעזולטאַטן ספּעציפֿיש: אַן HTTP פֿעלער ענטפֿער איז נישט אויטאָמאַטיש אַ טויטער פּראָקסי צוהערער. אויב אַ סינכראָנע urllib פּרופֿע ווערט געניצט אין אַן אַסינכראָנער סערוויס, פֿאַרבינדעט די בלאָקירנדיקע אַרבעט צו אַ פּאַסיקן worker; יענע אויספֿיר באַשלוס מאַכט נישט די גלאָבאַלע opener ענדערונג איזאָלירט.
אַ פּרופֿע זאָל צוריקקערן איר אָבסערוואַציע אָן אָפּלאָזן אַן אַנדער נעצווערק פּאָליטיק הינטער זיך. איר אייגענער קליענט אָביעקט און באַגרענעצטע אָפּעראַציע מאַכן די גרענעץ קלאָר.