Si të përdorni një proxy në Python Requests (HTTP/HTTPS & pooling i sesioneve)
Updated:
Libraria requests e Python pranon proxy të autentikuara VinaProxy përmes një fjalori proxies që lidh skemat 'http' dhe 'https' me http://user:pass@ip:port. Bashkëngjitja e atij fjalori në një requests.Session() të vazhdueshëm ripërdor soketat TCP themelore për web scraping të shpejtë dhe me ngarkesë minimale.
proxies = {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}- 1 IP40 000 ₫
- 5+ IP35 000 ₫
- 10+ IP25 000 ₫
- 20+ IP25 000 ₫
- 50+ IP25 000 ₫
- 100+ IP25 000 ₫
- 200+ IP25 000 ₫
- 500+ IP25 000 ₫
- 1000+ IP22 000 ₫
- 2000+ IP20 000 ₫
- 1 IP40 000 ₫
- 5+ IP35 000 ₫
- 10+ IP25 000 ₫
- 20+ IP25 000 ₫
- 50+ IP25 000 ₫
- 100+ IP25 000 ₫
- 200+ IP25 000 ₫
- 500+ IP25 000 ₫
- 1000+ IP22 000 ₫
- 2000+ IP20 000 ₫
Formatimi i fjalorit proxies & ripërdorimi i Sesioneve
Thirrja e requests.get() për çdo URL krijon një lidhje të re TCP dhe një TLS handshake çdo herë. Lidhja e proxy-t tuaj me session = requests.Session() e mban tunelin proxy të hapur përgjatë kërkesave të njëpasnjëshme.
| Parametri i Requests | Sintaksa e rekomanduar | Qëllimi teknik |
|---|---|---|
Çelësi 'http' | 'http://user:pass@ip:port' | Drejton kërkesat e thjeshta HTTP përmes proxy-t |
Çelësi 'https' | 'http://user:pass@ip:port' | Përdor skemën http:// në mënyrë që urllib3 të hapë një tunel HTTP CONNECT për TLS |
Tuple timeout | timeout=(5, 15) | Kufiri kohor prej 5s për lidhjen dhe 15s për leximin parandalon bllokimin e fijeve punuese |
| Rrotullimi i grupit | itertools.cycle(proxy_list) | Kryen cikle në mënyrë të barabartë nëpër grupin tuaj të dedikuar të IP-ve statike |
Shmangia e gabimeve të zakonshme me urllib3 & ProxyError
- Përdorni gjithmonë
http://(johttps://) si skemë të URL-së së proxy-t për të dy çelësat e fjalorit'http'dhe'https', përveç nëse porta juaj e proxy-t kërkon shprehimisht TLS-over-TLS - Kryeni kodimin URL për karakteret speciale në fjalëkalime duke përdorur
urllib.parse.quote(password, safe='') - Gabimi
407 Proxy Authentication Requireddo të thotë që emri i përdoruesit ose fjalëkalimi në vargun tuaj URL nuk përputhet me kredencialet në panelin tuaj të kontrollit - Funksionon në mënyrë identike me
httpx.Client(proxy='http://user:pass@ip:port')dhesession.get(url, proxy=...)nëaiohttp
Hap pas hapi
- 1
Konvertoni ip:port:user:pass në sintaksë URL
Përdorni Proxy Format Converter tonë për të transformuar listën tuaj VinaProxy në vargje
http://user:pass@ip:port. - 2
Përcaktoni fjalorin proxies
Vendosni
proxies = {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}në skriptin tuaj Python. - 3
Bashkëngjitni te një instancë requests.Session()
Inicializoni
s = requests.Session()dhe thirrnis.proxies.update(proxies)për grumbullim të vazhdueshëm meKeep-Alive. - 4
Verifikoni IP-në dalëse me një kërkesë testuese
Ekzekutoni
print(s.get('https://vinaproxy.com/api/my-ip', timeout=10).json())për të konfirmuar IP-në aktive të proxy-t.
Pyetjet e shpeshta
Pse çelësi 'https' përdor 'http://user:pass@ip:port'?
Parashtesa http:// i tregon urllib3 se si të lidhet me vetë serverin proxy (duke përdorur HTTP CONNECT standard), ndërsa trafiku juaj fund-më-fund drejt faqes së synuar https:// mbetet plotësisht i enkriptuar me TLS.
Si të rrotulloj 25 proxy statikë përgjatë kërkesave në Python?
Ngarkoni 25 URL-të tuaja të proxy-t në pool = itertools.cycle(PROXIES) dhe kaloni proxies={'http': p, 'https': p} për çdo kërkesë me kufizim të matur të shpejtësisë për çdo IP.
A e mat VinaProxy gjerësinë e brezit në skriptet e scraping me Python?
Jo. Të gjitha planet Dedicated IPv4 dhe Static ISP përfshijnë trafik mujor të pakufizuar.
Ndërtoni një grup scraping të pakufizuar në Python
Proxy të menjëhershëm Dedicated IPv4 dhe Static ISP në 7 shtete.
Bleni Proxy për Python