Kako koristiti proxy u Python Requests (HTTP/HTTPS i pooling sesija)
Updated:
Pythonova biblioteka requests prihvaća autentificirane VinaProxy proxyje putem rječnika proxies koji mapira i 'http' i 'https' sheme na http://user:pass@ip:port. Povezivanje tog rječnika s postojanim objektom requests.Session() ponovno koristi temeljne TCP sockete za brzo web struganje s niskim opterećenjem.
proxies = {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}- 1 IP40.000 VND
- 5+ IP-ova35.000 VND
- 10+ IP-ova25.000 VND
- 20+ IP-ova25.000 VND
- 50+ IP-ova25.000 VND
- 100+ IP-ova25.000 VND
- 200+ IP-ova25.000 VND
- 500+ IP-ova25.000 VND
- 1000+ IP-ova22.000 VND
- 2000+ IP-ova20.000 VND
- 1 IP40.000 VND
- 5+ IP-ova35.000 VND
- 10+ IP-ova25.000 VND
- 20+ IP-ova25.000 VND
- 50+ IP-ova25.000 VND
- 100+ IP-ova25.000 VND
- 200+ IP-ova25.000 VND
- 500+ IP-ova25.000 VND
- 1000+ IP-ova22.000 VND
- 2000+ IP-ova20.000 VND
Formatiranje proxies rječnika i ponovna upotreba sesija
Pozivanje requests.get() na svakom URL-u stvara potpuno novu TCP vezu i TLS rukovanje svaki put. Vezanje vašeg proxyja na session = requests.Session() drži proxy tunel otvorenim kroz uzastopne zahtjeve.
| Requests parametar | Preporučena sintaksa | Tehnička svrha |
|---|---|---|
Ključ 'http' | 'http://user:pass@ip:port' | Usmjerava obične HTTP zahtjeve kroz proxy |
Ključ 'https' | 'http://user:pass@ip:port' | Koristi shemu http:// kako bi urllib3 uspostavio HTTP CONNECT tunel za TLS |
timeout n-terac | timeout=(5, 15) | Timeout povezivanja od 5 s i timeout čitanja od 15 s sprječavaju blokiranje radnih dretvi |
| Rotacija bazena | itertools.cycle(proxy_list) | Ravnomjerno rotira kroz vaš namjenski statički IP bazen |
Izbjegavanje čestih zamki s urllib3 i ProxyError
- Uvijek koristite
http://(nehttps://) kao shemu proxy URL-a za oba rječnička ključa'http'i'https', osim ako vaš proxy priključak izričito ne zahtijeva TLS-over-TLS - URL-enkodirajte posebne znakove u lozinkama pomoću
urllib.parse.quote(password, safe='') - Pogreška
407 Proxy Authentication Requiredznači da se korisničko ime ili lozinka u vašem URL nizu ne podudaraju s vjerodajnicama na vašoj upravljačkoj ploči - Radi identično s
httpx.Client(proxy='http://user:pass@ip:port')iaiohttpsession.get(url, proxy=...)
Korak po korak
- 1
Pretvorite ip:port:user:pass u URL sintaksu
Upotrijebite naš Proxy Format Converter kako biste transformirali svoj VinaProxy popis u
http://user:pass@ip:portnizove. - 2
Definirajte proxies rječnik
Postavite
proxies = {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}u svojoj Python skripti. - 3
Povežite s instancom requests.Session()
Inicijalizirajte
s = requests.Session()i pozovites.proxies.update(proxies)za postojaniKeep-Alivepooling. - 4
Provjerite izlazni IP testnim zahtjevom
Pokrenite
print(s.get('https://vinaproxy.com/api/my-ip', timeout=10).json())kako biste potvrdili aktivni proxy IP.
Često postavljana pitanja
Zašto ključ 'https' koristi 'http://user:pass@ip:port'?
Prefiks http:// govori biblioteci urllib3 kako se spojiti na sam proxy poslužitelj (koristeći standardni HTTP CONNECT), dok vaš krajnji promet prema ciljanoj https:// web stranici ostaje potpuno TLS šifriran.
Kako rotirati 25 statičkih proxyja kroz zahtjeve u Pythonu?
Učitajte svojih 25 proxy URL-ova u pool = itertools.cycle(PROXIES) i proslijedite proxies={'http': p, 'https': p} po zahtjevu uz pristojno ograničenje brzine po IP-u.
Mjeri li VinaProxy propusnost na Python skriptama za struganje?
Ne. Svi Dedicated IPv4 i Static ISP paketi uključuju neograničeni mjesečni promet.
Izgradite Python bazen za struganje bez ograničenja
Trenutačni Dedicated IPv4 i Static ISP proxyji u 7 zemalja.
Kupite Python proxyje