Nagpi-print ang selector ng proxy A, pagkatapos ay proxy B. Ngunit patuloy na ipinapakita ng log ng mga kahilingan ang proxy A. Hindi kailangan ng serbisyo ng network para ipaliwanag ang kontradiksyong iyon: maaaring itinapon ng tumatawag ang return value ng selector.

Sundan ang value hanggang sa call na nagpapadala ng kahilingan:

endpoint = choose_proxy()
routes = {'http': endpoint, 'https': endpoint}
response = session.get(target_url, proxies=routes, timeout=15)

Ipinapalagay ng bahaging ito ang umiiral na session ng Requests at isang balidong proxy URL. Para sa mga pampublikong kahilingan na pinapayagan sa pamamagitan ng mga pampublikong tagapamagitan, nagbibigay ang libreng listahan ng proxy ng mga kandidatong URL na dumadaan sa parehong landas ng pagpili at pagpapadala. Ang sinusuportahang keyword ay proxies. Ang isang helper na nagpi-print ng mapping, o nagbabalik ng isang walang nagtatalaga, ay hindi makapapalit sa mapping na ibinigay dito.

Panatilihing lokal sa operasyon ang piniling ruta. Sa sabay-sabay na code, maaaring magbago ang isang nakabahaging field na current_proxy sa pagitan ng pag-log at pagpapadala. Kung magkagayon, maaaring lumitaw ang pinili ng ibang manggagawa sa tabi ng maling resulta.

Gumamit ng identifier ng pagtatangka upang ikonekta ang pagpili, configuration ng pagpapadala, at resulta. Kapag may mga kredensyal ang buong URL, i-log ang isang ligtas na identifier ng endpoint sa halip nito.

Kung tumutugma ang mga value na iyon ngunit hindi nagbabago ang naobserbahang pampublikong IP, nakarating ka sa ibang tanong: kung nagbibigay ba ng magkakaibang labasan ang mga piniling endpoint o may gumaganang gateway na nagpapanatili ng koneksyon. Alamin muna kung ipinadala ng aplikasyon ang rutang sinasabi nitong pinili. Kung hindi, maaaring maitago ng haka-haka sa panig ng provider ang isang simpleng lumang variable nang maraming oras.

Kaugnay na mga artikulo