Een proxy gebruiken in Python Requests (HTTP/HTTPS & Session-pooling)
Updated:
De requests-bibliotheek van Python accepteert geauthenticeerde VinaProxy-proxy's via een proxies-dictionary die zowel 'http'- als 'https'-schema's koppelt aan http://user:pass@ip:port. Door deze dictionary te koppelen aan een persistente requests.Session() worden onderliggende TCP-sockets hergebruikt voor snelle webscraping met minimale overhead.
proxies = {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}- 1 IP₫ 40.000
- 5+ IP's₫ 35.000
- 10+ IP's₫ 25.000
- 20+ IP's₫ 25.000
- 50+ IP's₫ 25.000
- 100+ IP's₫ 25.000
- 200+ IP's₫ 25.000
- 500+ IP's₫ 25.000
- 1000+ IP's₫ 22.000
- 2000+ IP's₫ 20.000
- 1 IP₫ 40.000
- 5+ IP's₫ 35.000
- 10+ IP's₫ 25.000
- 20+ IP's₫ 25.000
- 50+ IP's₫ 25.000
- 100+ IP's₫ 25.000
- 200+ IP's₫ 25.000
- 500+ IP's₫ 25.000
- 1000+ IP's₫ 22.000
- 2000+ IP's₫ 20.000
De proxies-dictionary structureren & Sessions hergebruiken
Bij het aanroepen van requests.get() op elke URL wordt telkens een nieuwe TCP-verbinding en TLS-handshake gemaakt. Door je proxy te koppelen aan session = requests.Session() blijft de proxytunnel open voor opeenvolgende verzoeken.
| Requests-parameter | Aanbevolen syntaxis | Technisch doel |
|---|---|---|
'http'-sleutel | 'http://user:pass@ip:port' | Leidt standaard HTTP-verzoeken via de proxy |
'https'-sleutel | 'http://user:pass@ip:port' | Gebruikt het http://-schema zodat urllib3 een HTTP CONNECT-tunnel opzet voor TLS |
timeout-tuple | timeout=(5, 15) | 5s time-out voor verbinding en 15s voor lezen voorkomt vastgelopen worker threads |
| Poolrotatie | itertools.cycle(proxy_list) | Roteert gelijkmatig over je dedicated statische IP-pool |
Veelvoorkomende valkuilen met urllib3 & ProxyError vermijden
- Gebruik altijd
http://(niethttps://) als proxy-URL-schema voor zowel'http'- als'https'-dictionarysleutels, tenzij je proxypoort expliciet TLS-over-TLS vereist - URL-encodeer speciale tekens in wachtwoorden via
urllib.parse.quote(password, safe='') - Een
407 Proxy Authentication Required-fout betekent dat de gebruikersnaam of het wachtwoord in je URL-string niet overeenkomt met de inloggegevens in je dashboard - Werkt identiek met
httpx.Client(proxy='http://user:pass@ip:port')enaiohttpsession.get(url, proxy=...)
Stappenplan
- 1
Converteer ip:port:user:pass naar URL-syntaxis
Gebruik onze Proxy Format Converter om je VinaProxy-lijst om te zetten naar
http://user:pass@ip:port-strings. - 2
Definieer de proxies-dictionary
Stel
proxies = {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}in binnen je Python-script. - 3
Koppel aan een requests.Session()-instantie
Initialiseer
s = requests.Session()en roeps.proxies.update(proxies)aan voor persistenteKeep-Alive-pooling. - 4
Controleer het exit-IP met een testverzoek
Voer
print(s.get('https://vinaproxy.com/api/my-ip', timeout=10).json())uit om het actieve proxy-IP te bevestigen.
Veelgestelde vragen
Waarom gebruikt de 'https'-sleutel 'http://user:pass@ip:port'?
Het http://-voorvoegsel vertelt urllib3 hoe er verbinding moet worden gemaakt met de proxyserver zelf (via standaard HTTP CONNECT), terwijl je end-to-end-verkeer naar de https://-doelwebsite volledig TLS-versleuteld blijft.
Hoe roteer ik 25 statische proxy's over verzoeken in Python?
Laad je 25 proxy-URL's in pool = itertools.cycle(PROXIES) en geef proxies={'http': p, 'https': p} per verzoek door met een beheerste rate-limiting per IP.
Hanteert VinaProxy een datalimiet voor Python-scrapingscripts?
Nee. Alle Dedicated IPv4- en Static ISP-pakketten bevatten onbeperkt maandelijks dataverkeer.
Bouw een Python-scrapingpool zonder datalimieten
Direct beschikbare Dedicated IPv4- en Static ISP-proxy's in 7 landen.
Python-proxy's kopen