Kako uporabljati proxy v Python Requests (HTTP/HTTPS in združevanje sej)
Updated:
Pythonova knjižnica requests sprejema avtenticirane proxyje VinaProxy prek slovarja proxies, ki preslika shemi 'http' in 'https' v http://user:pass@ip:port. Povezava tega slovarja s trajnim requests.Session() ponovno uporabi osnovne vtičnice TCP za hitro spletno strganje z nizko porabo virov.
proxies = {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}- 1 IP40.000 ₫
- 5+ IP-jev35.000 ₫
- 10+ IP-jev25.000 ₫
- 20+ IP-jev25.000 ₫
- 50+ IP-jev25.000 ₫
- 100+ IP-jev25.000 ₫
- 200+ IP-jev25.000 ₫
- 500+ IP-jev25.000 ₫
- 1000+ IP-jev22.000 ₫
- 2000+ IP-jev20.000 ₫
- 1 IP40.000 ₫
- 5+ IP-jev35.000 ₫
- 10+ IP-jev25.000 ₫
- 20+ IP-jev25.000 ₫
- 50+ IP-jev25.000 ₫
- 100+ IP-jev25.000 ₫
- 200+ IP-jev25.000 ₫
- 500+ IP-jev25.000 ₫
- 1000+ IP-jev22.000 ₫
- 2000+ IP-jev20.000 ₫
Oblikovanje slovarja proxies in ponovna uporaba sej
Klic requests.get() za vsak URL vsakič znova ustvari novo povezavo TCP in stisk rok TLS. Vezava vašega proxyja na session = requests.Session() ohranja proxy predor odprt med zaporednimi zahtevami.
| Parameter Requests | Priporočena sintaksa | Tehnični namen |
|---|---|---|
Ključ 'http' | 'http://user:pass@ip:port' | Usmerja navadne zahteve HTTP prek proxyja |
Ključ 'https' | 'http://user:pass@ip:port' | Uporablja shemo http://, da urllib3 vzpostavi predor HTTP CONNECT za TLS |
Torka timeout | timeout=(5, 15) | 5 s časovne omejitve za povezavo in 15 s za branje preprečujeta zastoj delovnih niti |
| Rotacija nabora | itertools.cycle(proxy_list) | Enakomerno kroži po vašem naboru namenskih statičnih naslovov IP |
Izogibanje pogostim pastem urllib3 in ProxyError
- Vedno uporabite
http://(in nehttps://) kot shemo URL-ja proxyja za oba ključa slovarja'http'in'https', razen če vaša vrata proxyja izrecno zahtevajo TLS-over-TLS - Posebne znake v geslih kodirajte za URL z uporabo
urllib.parse.quote(password, safe='') - Napaka
407 Proxy Authentication Requiredpomeni, da se uporabniško ime ali geslo v vašem nizu URL ne ujema s poverilnicami na nadzorni plošči - Deluje povsem enako z
httpx.Client(proxy='http://user:pass@ip:port')inaiohttpsession.get(url, proxy=...)
Navodila po korakih
- 1
Pretvorite ip:port:user:pass v sintakso URL
Uporabite naš Proxy Format Converter, da svoj seznam VinaProxy pretvorite v nize
http://user:pass@ip:port. - 2
Določite slovar proxies
Nastavite
proxies = {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}v svojem skriptu Python. - 3
Povežite s primerkom requests.Session()
Inicializirajte
s = requests.Session()in pokličites.proxies.update(proxies)za trajno združevanjeKeep-Alive. - 4
Preverite izhodni IP s testno zahtevo
Zaženite
print(s.get('https://vinaproxy.com/api/my-ip', timeout=10).json()), da potrdite aktivni IP proxyja.
Pogosta vprašanja
Zakaj ključ 'https' uporablja 'http://user:pass@ip:port'?
Predpona http:// pove knjižnici urllib3, kako naj se poveže s samim proxy strežnikom (z uporabo standardnega HTTP CONNECT), medtem ko vaš celostni promet do ciljnega spletnega mesta https:// ostaja v celoti šifriran s TLS.
Kako v Pythonu rotiram 25 statičnih proxyjev med zahtevami?
Naložite svojih 25 URL-jev proxyjev v pool = itertools.cycle(PROXIES) in posredujte proxies={'http': p, 'https': p} za vsako zahtevo s primerno omejitvijo hitrosti na posamezen IP.
Ali VinaProxy meri porabo pasovne širine pri skriptih za strganje v Pythonu?
Ne. Vsi paketi Dedicated IPv4 in Static ISP vključujejo neomejen mesečni promet.
Zgradite neomejen nabor za strganje v Pythonu
Takojšnji proxyji Dedicated IPv4 in Static ISP v 7 državah.
Kupite proxyje za Python