צונויפֿנעמען יעדער רעזולטאַט פֿון פּאַראַלעלע urllib3 פּראָקסי בקשות
טיילט אַ קאָנפיגורירטן ProxyManager צווישן אַרבעט־פֿעדעם, פֿאַרנוצט דעם רעזולטאַט־איטעראַטאָר פֿונעם אויספֿירער און פֿאַרשיידנט די פּול־אויפֿהאַלטונג פֿון אַ פֿאַרבינדונג־גרענעץ.
שאַפֿן אַן אַרבעט־פּול גיט נישט דעם רופֿער די אַראָפּגעלאָדנע זײַטן. האַלט און פֿאַרנוצט די ווערטן וואָס די אַרבעט וואָס איז אַרײַנגעגעבן געוואָרן גיט צוריק:
from concurrent.futures import ThreadPoolExecutor
import urllib3
manager = urllib3.ProxyManager(
'http://proxy.example:8080',
maxsize=4,
block=True,
)
def fetch(url):
response = manager.request(
'GET', url, timeout=urllib3.Timeout(connect=5, read=15),
)
return url, response.status, response.data
try:
with ThreadPoolExecutor(max_workers=4) as workers:
results = list(workers.map(fetch, urls))
finally:
manager.clear()דער טייל פֿאַרזעצט אַ באַגרענעצטע רשימה פֿון URL־ן און געוויינטלעכע ענטפֿער־גרייסן. פֿאַר דערלויבטע פּובליקע URL־פּרופֿונגען אָן פּראָקסי־אויטענטיפֿיקאַציע קען אַ קאַנדידאַט פֿון דער HTTP־פּראָקסי־רשימה פֿאַרבײַטן דעם ביישפּיל־HTTP־ענדפּונקט פֿונעם פֿאַרוואַלטער. יעדער רעזולטאַט אַנטהאַלט זײַן URL, כּדי דער רופֿער זאָל קענען פֿאַרבינדן סטאַטוס און קערפּער מיט דער ריכטיקער בקשה. map גיט צוריק רעזולטאַטן אין דער אַרײַנגאַנג־סדר; אַן אויסנאַם אין אַן אַרבעטער ווערט אויפֿגעהויבן ווען יענער רעזולטאַט ווערט אָפּגענומען.
דער קאָנפיגורירטער ProxyManager איז דער באַלעבאָס פֿון דעם פֿאַרבינדונג־פּול פֿאַר די בקשות. מיט דעם פֿאַרהאַנט פּרעפּלאָאַד ענטפֿער־מאָדע וואָס ווערט דאָ גענוצט, לייענט urllib3 דעם קערפּער און גיט צוריק די פֿאַרבינדונג צו זײַן פּול. אַ סטרימינג־ווערסיע וואָלט דאַרפֿן בפֿירושע פֿאַרנוצונג און פֿרייערדיקונג פֿון דער פֿאַרבינדונג.
maxsize פֿאַרוואַלט געוויינטלעך די אויפֿגעהאַלטענע ווידער־בנוציקע פֿאַרבינדונגען, נישט אַ האַרטער גרענעץ אויף יעדער עפֿענער סאָקעט. block=True ענדערט דאָס באַטרעפֿנדיקע פּול־פֿאַרהאַלטן, אַזוי די רופֿער וואַרטן אויף אַ פֿרײַער פֿאַרבינדונג אַנשטאָט צו עפֿענען נאָך איבער דער גרענעץ פֿון יענעם פּול.
די צאָל אַרבעטער באַגרענעצט די פּאַראַלעלע רופֿן אין דעם ביישפּיל. מיט פֿיל צילן זײַנען אויך וויכטיק דער פּול־אויסלייג און דער וועג פֿאַר HTTPS־טונעלן; אַן איינשטעלונג פֿאַר איין פּול טאָר נישט באַשריבן ווערן ווי איין גלאָבאַלער סאָקעט־קוואָטע פֿאַר יעדער האָסט.