Proxy használata Python Requests könyvtárban (HTTP/HTTPS és Session pooling)
Updated:
A Python requests könyvtára egy proxies szótár segítségével fogadja a hitelesített VinaProxy proxykat, megfeleltetve a 'http' és 'https' sémákat a http://user:pass@ip:port címnek. Ha ezt a szótárat egy tartós requests.Session() példányhoz kapcsolja, a mögöttes TCP-socketek újrahasznosításával gyors és alacsony erőforrás-igényű web scrapinget érhet el.
proxies = {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}- 1 IP40 000 VND
- 5+ IP35 000 VND
- 10+ IP25 000 VND
- 20+ IP25 000 VND
- 50+ IP25 000 VND
- 100+ IP25 000 VND
- 200+ IP25 000 VND
- 500+ IP25 000 VND
- 1000+ IP22 000 VND
- 2000+ IP20 000 VND
- 1 IP40 000 VND
- 5+ IP35 000 VND
- 10+ IP25 000 VND
- 20+ IP25 000 VND
- 50+ IP25 000 VND
- 100+ IP25 000 VND
- 200+ IP25 000 VND
- 500+ IP25 000 VND
- 1000+ IP22 000 VND
- 2000+ IP20 000 VND
A proxies szótár formázása és a Sessionök újrahasznosítása
A requests.get() meghívása minden egyes URL esetén vadonatúj TCP-kapcsolatot és TLS-kézfogást hoz létre. Ha a proxyt a session = requests.Session() objektumhoz köti, a proxytunel nyitva marad az egymást követő kérések során.
| Requests paraméter | Ajánlott szintaxis | Technikai cél |
|---|---|---|
'http' kulcs | 'http://user:pass@ip:port' | A sima HTTP-kéréseket a proxyn keresztül irányítja |
'https' kulcs | 'http://user:pass@ip:port' | A http:// sémát használja, így az urllib3 HTTP CONNECT alagutat hoz létre a TLS-hez |
timeout tuple | timeout=(5, 15) | Az 5 mp-es csatlakozási és 15 mp-es olvasási időtúllépés megakadályozza a szálak beragadását |
| Pool-rotáció | itertools.cycle(proxy_list) | Egyenletesen rotál a dedikált statikus IP-pool elemei között |
A gyakori urllib3 és ProxyError hibák elkerülése
- Mindig a
http://(és ne ahttps://) sémát használja proxy URL-ként mind a'http', mind a'https'szótárkulcshoz, kivéve, ha a proxyport kifejezetten TLS-over-TLS kapcsolatot igényel - Alakítsa át a jelszóban található speciális karaktereket URL-kódolással a
urllib.parse.quote(password, safe='')segítségével - A
407 Proxy Authentication Requiredhiba azt jelenti, hogy az URL-karakterláncban megadott felhasználónév vagy jelszó nem egyezik a vezérlőpulton található hitelesítési adatokkal - Teljesen azonos módon működik a
httpx.Client(proxy='http://user:pass@ip:port')és azaiohttpsession.get(url, proxy=...)használatával is
Lépésről lépésre
- 1
Alakítsa át az ip:port:user:pass formátumot URL-szintaxisra
Használja a Proxy Format Converter eszközünket a VinaProxy lista
http://user:pass@ip:portformátumú karakterláncokká alakításához. - 2
Határozza meg a proxies szótárat
Állítsa be a
proxies = {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}értéket a Python-szkriptben. - 3
Rendelje hozzá egy requests.Session() példányhoz
Inicializálja az
s = requests.Session()objektumot, majd hívja meg as.proxies.update(proxies)metódust a tartósKeep-Alivepoolinghoz. - 4
Ellenőrizze a kilépő IP-címet egy tesztkéréssel
Futtassa a
print(s.get('https://vinaproxy.com/api/my-ip', timeout=10).json())parancsot az aktív proxy IP megerősítéséhez.
Gyakran ismételt kérdések
Miért használ a 'https' kulcs 'http://user:pass@ip:port' formátumot?
A http:// előtag jelzi az urllib3 számára, hogyan csatlakozzon magához a proxyszerverhez (szabványos HTTP CONNECT használatával), miközben a cél https:// webhely felé irányuló végpontok közötti forgalom végig TLS-titkosított marad.
Hogyan rotálhatok 25 statikus proxyt a kérések között Pythonban?
Töltse be a 25 proxy URL-t a pool = itertools.cycle(PROXIES) objektumba, és kérésenként adja át a proxies={'http': p, 'https': p} paramétert megfontolt IP-nkénti sebességkorlátozással.
Méri a VinaProxy a sávszélességet a Python scraping szkriptek esetén?
Nem. Minden Dedicated IPv4 és Static ISP csomag korlátlan havi forgalmat tartalmaz.
Építsen korlátlan Python scraping poolt
Azonnali Dedicated IPv4 és Static ISP proxyk 7 országban.
Python proxyk vásárlása