Gach toradh a bhailiú ó iarratais seachfhreastalaí urllib3 chomhthreomhara
Roinn ProxyManager cumraithe idir snáitheanna oibre, ith an t-athróir torthaí ón seiceadóir agus idirdhealaigh coinneáil an linn ó theorainn naisc.
Ní thugann cruthú linn oibrithe na leathanaigh íoslódáilte don ghlaoiteoir. Coinnigh agus ith na luachanna a thugann an obair a cuireadh isteach ar ais:
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()Glacann an sliocht seo le liosta teoranta URL agus méideanna freagartha coitianta. Le haghaidh seiceálacha URL poiblí ceadaithe gan fíordheimhniú seachfhreastalaí, féadann iarrthóir ón liosta seachfhreastalaí HTTP deireadhphointe HTTP samplach an bhainisteora a athsholáthar. Cuimsíonn gach toradh a URL ionas gur féidir leis an nglaoiteoir stádas agus corp a cheangal leis an iarratas ceart. Filleann map torthaí in ord ionchuir; ardaítear eisceacht in oibrí nuair a aisghabháiltear an toradh sin.
Tá comhthiomsú naisc ag an ProxyManager cumraithe do na hiarratais. Leis an mód freagartha réamhlódáilte réamhshocraithe a úsáidtear anseo, léann urllib3 an corp agus filleann sé an nasc ar a linn. Bheadh gá le hiompar follasach agus scaoileadh naisc i leagan sruthaithe.
Rialaíonn maxsize na naisc athúsáidte a choinnítear de ghnáth, ní teorainn chrua ar gach soicéad oscailte. Athraíonn block=True iompar ábhartha an linn ionas go bhfanann glaonna ar nasc saor in ionad cinn bhreise a oscailt thar theorainn an linn sin.
Cuireann líon na n-oibritheoirí teorainn le glaonna comhthreomhara sa sampla seo. Le go leor ceann scríbe, tá leagan amach an linn agus an bealach a úsáidtear do tholláin HTTPS tábhachtach freisin; níor cheart socrú in aghaidh an linn a thuairisciú mar chuóta soicéad domhanda amháin do gach óstach.