Hvordan bruke en proxy i Python Requests (HTTP/HTTPS og Session-pooling)
Updated:
Pythons requests-bibliotek støtter autentiserte VinaProxy-proxyer via en proxies-ordbok som tilordner både 'http'- og 'https'-protokollene til http://user:pass@ip:port. Å koble denne ordboken til en persistent requests.Session() gjenbruker underliggende TCP-sockets for rask nettskraving med lavt ressursbruk.
proxies = {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}- 1 IP40 000 VND
- 5+ IP-er35 000 VND
- 10+ IP-er25 000 VND
- 20+ IP-er25 000 VND
- 50+ IP-er25 000 VND
- 100+ IP-er25 000 VND
- 200+ IP-er25 000 VND
- 500+ IP-er25 000 VND
- 1000+ IP-er22 000 VND
- 2000+ IP-er20 000 VND
- 1 IP40 000 VND
- 5+ IP-er35 000 VND
- 10+ IP-er25 000 VND
- 20+ IP-er25 000 VND
- 50+ IP-er25 000 VND
- 100+ IP-er25 000 VND
- 200+ IP-er25 000 VND
- 500+ IP-er25 000 VND
- 1000+ IP-er22 000 VND
- 2000+ IP-er20 000 VND
Formatere proxies-ordboken og gjenbruke Sessions
Å kalle requests.get() for hver URL oppretter en helt ny TCP-tilkobling og et nytt TLS-håndtrykk hver gang. Ved å binde proxyen din til session = requests.Session() holdes proxy-tunnelen åpen over flere påfølgende forespørsler.
| Requests-parameter | Anbefalt syntaks | Teknisk formål |
|---|---|---|
'http'-nøkkel | 'http://user:pass@ip:port' | Ruter vanlige HTTP-forespørsler gjennom proxyen |
'https'-nøkkel | 'http://user:pass@ip:port' | Bruker http://-protokoll slik at urllib3 oppretter en HTTP CONNECT-tunnel for TLS |
timeout-tuppel | timeout=(5, 15) | 5 s tidsavbrudd for tilkobling og 15 s for lesing forhindrer at worker-tråder låser seg |
| Puljerotasjon | itertools.cycle(proxy_list) | Roterer jevnt gjennom din dedikerte statiske IP-pulje |
Unngå vanlige fallgruver med urllib3 og ProxyError
- Bruk alltid
http://(ikkehttps://) som URL-skjema for proxyen for både'http'- og'https'-ordboknøklene, med mindre proxy-porten din eksplisitt krever TLS-over-TLS - URL-kod spesialtegn i passord ved hjelp av
urllib.parse.quote(password, safe='') - En
407 Proxy Authentication Required-feil betyr at brukernavnet eller passordet i URL-strengen din ikke stemte overens med påloggingsinformasjonen i dashbordet - Fungerer identisk med
httpx.Client(proxy='http://user:pass@ip:port')ogaiohttpsession.get(url, proxy=...)
Trinn for trinn
- 1
Konverter ip:port:user:pass til URL-syntaks
Bruk vår Proxy Format Converter til å gjøre om VinaProxy-listen din til
http://user:pass@ip:port-strenger. - 2
Definer proxies-ordboken
Angi
proxies = {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}i Python-skriptet ditt. - 3
Koble til en requests.Session()-instans
Initialiser
s = requests.Session()og kalls.proxies.update(proxies)for persistentKeep-Alive-pooling. - 4
Bekreft utgående IP med en testforespørsel
Kjør
print(s.get('https://vinaproxy.com/api/my-ip', timeout=10).json())for å bekrefte den aktive proxy-IP-en.
Ofte stilte spørsmål
Hvorfor bruker 'https'-nøkkelen 'http://user:pass@ip:port'?
Prefikset http:// forteller urllib3 hvordan den skal koble til selve proxy-serveren (ved hjelp av standard HTTP CONNECT), mens ende-til-ende-trafikken din til målnettstedet over https:// forblir fullstendig TLS-kryptert.
Hvordan roterer jeg 25 statiske proxyer over forespørsler i Python?
Last inn dine 25 proxy-URL-er i pool = itertools.cycle(PROXIES) og send proxies={'http': p, 'https': p} per forespørsel med hensynsfull hastighetsbegrensning per IP.
Måler VinaProxy båndbreddebruk for skript for Python-skraving?
Nei. Alle Dedicated IPv4- og Static ISP-abonnementer inkluderer ubegrenset månedlig datatrafikk.
Bygg en ubegrenset pool for Python-skraping
Øyeblikkelige Dedicated IPv4- og Static ISP-proxyer i 7 land.
Kjøp Python-proxyer