Så använder du en proxy i Python Requests (HTTP/HTTPS & sessionspoolning)
Updated:
Pythons requests-bibliotek stöder autentiserade VinaProxy-proxier via en proxies-dictionary som mappar både 'http'- och 'https'-scheman till http://user:pass@ip:port. Genom att koppla den dictionaryn till en persistent requests.Session() återanvänds underliggande TCP-sockets för snabb web scraping med låg overhead.
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
Formatering av proxies-dictionary och återanvändning av sessioner
Att anropa requests.get() för varje URL skapar en helt ny TCP-anslutning och TLS-handskakning varje gång. Genom att binda din proxy till session = requests.Session() hålls proxytunneln öppen över flera påföljande förfrågningar.
| Requests-parameter | Rekommenderad syntax | Tekniskt syfte |
|---|---|---|
'http'-nyckel | 'http://user:pass@ip:port' | Dirigerar vanliga HTTP-förfrågningar genom proxyn |
'https'-nyckel | 'http://user:pass@ip:port' | Använder http://-schemat så att urllib3 upprättar en HTTP CONNECT-tunnel för TLS |
timeout-tupel | timeout=(5, 15) | 5 s anslutningstimeout och 15 s lästimeout förhindrar låsta worker-trådar |
| Poolrotation | itertools.cycle(proxy_list) | Växlar jämnt mellan adresserna i din dedikerade statiska IP-pool |
Undvik vanliga fallgropar med urllib3 och ProxyError
- Använd alltid
http://(intehttps://) som proxy-URL-schema för både'http'- och'https'-dictionarynycklar såvida inte din proxyport uttryckligen kräver TLS-over-TLS - URL-koda specialtecken i lösenord med
urllib.parse.quote(password, safe='') - Felet
407 Proxy Authentication Requiredinnebär att användarnamnet eller lösenordet i din URL-sträng inte matchade inloggningsuppgifterna i din kontrollpanel - Fungerar identiskt med
httpx.Client(proxy='http://user:pass@ip:port')ochaiohttpsession.get(url, proxy=...)
Steg för steg
- 1
Konvertera ip:port:user:pass till URL-syntax
Använd vår Proxy Format Converter för att omvandla din VinaProxy-lista till
http://user:pass@ip:port-strängar. - 2
Definiera proxies-dictionaryn
Ange
proxies = {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}i ditt Python-skript. - 3
Koppla till en requests.Session()-instans
Initiera
s = requests.Session()och anropas.proxies.update(proxies)för persistentKeep-Alive-poolning. - 4
Verifiera utgående IP med en testförfrågan
Kör
print(s.get('https://vinaproxy.com/api/my-ip', timeout=10).json())för att bekräfta den aktiva proxy-IP-adressen.
Vanliga frågor
Varför använder 'https'-nyckeln 'http://user:pass@ip:port'?
Prefixet http:// talar om för urllib3 hur den ska ansluta till själva proxyservern (via standardmässig HTTP CONNECT), medan din end-to-end-trafik till målwebbplatsen med https:// förblir fullständigt TLS-krypterad.
Hur roterar jag 25 statiska proxier mellan förfrågningar i Python?
Läs in dina 25 proxy-URL:er i pool = itertools.cycle(PROXIES) och skicka proxies={'http': p, 'https': p} per förfrågan med skonsam hastighetsbegränsning per IP.
Mäter VinaProxy bandbredd för Python-scrapingskript?
Nej. Alla abonnemang för Dedicated IPv4 och Static ISP inkluderar obegränsad månatlig trafik.
Bygg en Python-scrapingpool med obegränsad trafik
Direkt tillgängliga Dedicated IPv4- och Static ISP-proxier i 7 länder.
Köp Python-proxier