Hoe om 'n proxy in Python Requests te gebruik (HTTP/HTTPS en sessiepoeling)
Updated:
Python se requests-biblioteek aanvaar geoutentiseerde VinaProxy-proxies via 'n proxies-woordeboek wat beide die 'http'- en 'https'-skemas na http://user:pass@ip:port karteer. Deur daardie woordeboek aan 'n deurlopende requests.Session() te koppel, word onderliggende TCP-sokke hergebruik vir vinnige webskraping met lae bokoste.
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
Formatering van die proxies-woordeboek en hergebruik van Sessions
Om requests.get() op elke URL te roep, skep elke keer 'n splinternuwe TCP-verbinding en TLS-handdruk. Deur jou proxy aan session = requests.Session() te bind, bly die proxy-tonnel oor opeenvolgende versoeke oop.
| Requests-parameter | Aanbevole sintaksis | Tegniese doel |
|---|---|---|
'http'-sleutel | 'http://user:pass@ip:port' | Stuur gewone HTTP-versoeke deur die proxy |
'https'-sleutel | 'http://user:pass@ip:port' | Gebruik die http://-skema sodat urllib3 'n HTTP CONNECT-tonnel vir TLS uitreik |
timeout-tupel | timeout=(5, 15) | 5s-verbindingsuittelling en 15s-leesuittelling voorkom dat werkerdrade vashaak |
| Poelrotasie | itertools.cycle(proxy_list) | Wissel eweredig deur jou toegewyde statiese IP-poel |
Vermy algemene urllib3- en ProxyError-valstrikke
- Gebruik altyd
http://(niehttps://nie) as die proxy-URL-skema vir beide die'http'- en'https'-woordeboeksleutels tensy jou proxy-poort uitdruklik TLS-oor-TLS vereis - URL-enkodeer spesiale karakters in wagwoorde met
urllib.parse.quote(password, safe='') - 'n
407 Proxy Authentication Required-fout beteken die gebruikersnaam of wagwoord in jou URL-string stem nie ooreen met jou kontrolepaneel-bewysbriewe nie - Werk identies met
httpx.Client(proxy='http://user:pass@ip:port')enaiohttpsession.get(url, proxy=...)
Stap vir stap
- 1
Skakel ip:port:user:pass om na URL-sintaksis
Gebruik ons Proxy Format Converter om jou VinaProxy-lys na
http://user:pass@ip:port-stringe om te skakel. - 2
Definieer die proxies-woordeboek
Stel
proxies = {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}in jou Python-skrip in. - 3
Koppel aan 'n requests.Session()-instansie
Inisialiseer
s = requests.Session()en roeps.proxies.update(proxies)vir deurlopendeKeep-Alive-poeling. - 4
Verifieer die uitgangs-IP met 'n toetsversoek
Voer
print(s.get('https://vinaproxy.com/api/my-ip', timeout=10).json())uit om die aktiewe proxy-IP te bevestig.
Gereelde vrae
Waarom gebruik die 'https'-sleutel 'http://user:pass@ip:port'?
Die http://-voorvoegsel sê vir urllib3 hoe om aan die proxysbediener self te koppel (deur standaard HTTP CONNECT te gebruik), terwyl jou end-tot-end-verkeer na die teiken-https://-webwerf ten volle TLS-geënkripteer bly.
Hoe roteer ek 25 statiese proxies oor versoeke in Python?
Laai jou 25 proxy-URL'e in pool = itertools.cycle(PROXIES) en gee proxies={'http': p, 'https': p} per versoek deur met hoflike tempo-beperking per IP.
Meet VinaProxy bandwydte op Python-skraapskrifte?
Nee. Alle Toegewyde IPv4- en Statiese ISP-planne sluit onbeperkte maandelikse verkeer in.
Bou 'n onbeperkte Python-skraappoel
Onmiddellike Toegewyde IPv4- en Statiese ISP-proxies oor 7 lande.
Koop Python-proxies