Bheir map poll aon nì don neach-obrach aig an aon àm. Dèan obair iomlan den nì sin, a' gabhail a-steach an URL agus am proxy taghte, gus nach dèan an neach-obrach a shlighe a dhearbhadh bho liosta chruinneil a tha ag atharrachadh.

Airson urls crìochnaichte, thoir seachad liosta nach eil falamh de URLan proxy dearbhte. Tha tagraichean HTTP poblach rim faighinn anns an liosta proxy HTTP:

from concurrent.futures import ThreadPoolExecutor
from itertools import cycle
import requests

def fetch(job):
    url, proxy_url = job
    proxies = {"http": proxy_url, "https": proxy_url}
    with requests.get(url, proxies=proxies, timeout=(5, 15)) as response:
        response.raise_for_status()
        return url, response.text

if not proxy_urls:
    raise ValueError("No proxy endpoints were supplied")

jobs = zip(urls, cycle(proxy_urls))
with ThreadPoolExecutor(max_workers=5) as executor:
    for url, body in executor.map(fetch, jobs):
        handle_result(url, body)

Bheir an tagradh urls, proxy_urls agus handle_result seachad. Bidh an co-òrdanaiche a' sònrachadh phuingean-crìche ann an òrdugh ath-aithriseach; gheibh gach neach-obrach aon phaidhir stèidhichte. Bidh a bhith ag aithris nan toraidhean cuideachd a' nochdadh eisgeachdan luchd-obrach.

Tha còignear luchd-obrach a' cuingealachadh obair ghnìomhach, chan e obair ghnìomhach airson gach proxy. Ma tha dà phuing-crìche air an liosta, faodaidh grunn obraichean an aon phuing-crìche a chleachdadh aig an aon àm. Cuir riaghailt comasachd air leth airson gach puing-crìche nuair a tha sin a dhìth. Airson aon obair ghnìomhach airson gach URL puing-crìche, faodaidh màl ciudha sioncronaichte gach inntrigeadh a ghlèidheadh agus a thilleadh.

Bu chòir do dh'oidhirp ùr oidhirp chrìochnaichte ùr a chruthachadh airson an aon URL. Seachain gairmean ath-oidhirpeachd ath-chuairteach a bheir air falbh inntrigidhean bho liosta cho-roinnte: dh'fhaodadh neach-obrach eile a bhith a' taghadh bhuaithe, agus tha feum aig liosta sgìth air toradh soilleir fhathast.

Artaigilean co-cheangailte