Jinsi ya kutumia proksi katika Python Requests (HTTP/HTTPS na pooling ya Session)
Updated:
Maktaba ya requests ya Python inakubali proksi za VinaProxy zilizothibitishwa kupitia kamusi ya proxies inayopanga miradi yote miwili ya 'http' na 'https' kwa http://user:pass@ip:port. Kuunganisha kamusi hiyo kwenye requests.Session() endelevu hutumia tena soketi za msingi za TCP kwa ukusanyaji wa wavuti wa haraka na usiotumia rasilimali nyingi.
proxies = {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}- IP 1₫ 40,000
- IP 5+₫ 35,000
- IP 10+₫ 25,000
- IP 20+₫ 25,000
- IP 50+₫ 25,000
- IP 100+₫ 25,000
- IP 200+₫ 25,000
- IP 500+₫ 25,000
- IP 1000+₫ 22,000
- IP 2000+₫ 20,000
- IP 1₫ 40,000
- IP 5+₫ 35,000
- IP 10+₫ 25,000
- IP 20+₫ 25,000
- IP 50+₫ 25,000
- IP 100+₫ 25,000
- IP 200+₫ 25,000
- IP 500+₫ 25,000
- IP 1000+₫ 22,000
- IP 2000+₫ 20,000
Kupanga muundo wa kamusi ya proxies na kutumia tena Sessions
Kuita requests.get() kwa kila URL huunda muunganisho mpya kabisa wa TCP na TLS handshake kila wakati. Kufunga proksi yako kwenye session = requests.Session() huweka handaki la proksi wazi katika maombi yote yanayofuatana.
| Kigezo cha Requests | Sintaksia Inayopendekezwa | Kusudi la Kiufundi |
|---|---|---|
Ufunguo wa 'http' | 'http://user:pass@ip:port' | Huelekeza maombi ya kawaida ya HTTP kupitia proksi |
Ufunguo wa 'https' | 'http://user:pass@ip:port' | Hutumia mpangilio wa http:// ili urllib3 itoe handaki la HTTP CONNECT kwa ajili ya TLS |
Tupo ya timeout | timeout=(5, 15) | Muda wa kuunganisha wa 5s na muda wa kusoma wa 15s huzuia nyuzi za uchakataji kukwama |
| Mzunguko wa bwawa | itertools.cycle(proxy_list) | Huzungusha kwa usawa kwenye bwawa lako la IP tuli zilizotengwa |
Kuepuka makosa ya kawaida ya urllib3 na ProxyError
- Kila mara tumia
http://(siohttps://) kama mpangilio wa URL ya proksi kwa funguo zote mbili za kamusi ya'http'na'https'isipokuwa kama lango lako la proksi linahitaji TLS-over-TLS moja kwa moja - Fanya URL-encode ya herufi maalum katika nywila kwa kutumia
urllib.parse.quote(password, safe='') - Hitilafu ya
407 Proxy Authentication Requiredinamaanisha kuwa jina la mtumiaji au nywila katika mfuatano wako wa URL halikulingana na vitambulisho vyako vya dashibodi - Inafanya kazi kwa njia inayofanana na
httpx.Client(proxy='http://user:pass@ip:port')naaiohttpsession.get(url, proxy=...)
Hatua kwa hatua
- 1
Badilisha ip:port:user:pass kuwa sintaksia ya URL
Tumia Kigeuzi cha Umbizo la Proksi chetu kubadilisha orodha yako ya VinaProxy kuwa mifuatano ya
http://user:pass@ip:port. - 2
Bainisha kamusi ya proxies
Weka
proxies = {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}katika hati yako ya Python. - 3
Unganisha kwenye mfano wa requests.Session()
Anzisha
s = requests.Session()na uites.proxies.update(proxies)kwa ajili ya pooling endelevu yaKeep-Alive. - 4
Thibitisha IP ya kutokea kwa ombi la majaribio
Endesha
print(s.get('https://vinaproxy.com/api/my-ip', timeout=10).json())ili kuthibitisha IP inayotumika ya proksi.
Maswali yanayoulizwa mara kwa mara
Kwa nini ufunguo wa 'https' unatumia 'http://user:pass@ip:port'?
Kiambishi awali cha http:// kinaelekeza urllib3 jinsi ya kuunganisha kwenye seva ya proksi yenyewe (kwa kutumia HTTP CONNECT ya kawaida), huku trafiki yako yote kuelekea tovuti lengwa ya https:// ikisalia na usimbaji fiche kamili wa TLS.
Je, ninazungushaje proksi 25 tuli kwenye maombi katika Python?
Pakia URL zako 25 za proksi kwenye pool = itertools.cycle(PROXIES) na upitishe proxies={'http': p, 'https': p} kwa kila ombi kukiwa na udhibiti wa kiwango cha maombi kwa kila IP.
Je, VinaProxy inapima kipimo data kwenye hati za Python za ukusanyaji data?
Hapana. Mipango yote ya Dedicated IPv4 na Static ISP inajumuisha trafiki ya kila mwezi isiyo na kikomo.
Jenga bwawa la ukusanyaji data la Python lisilo na kikomo
Proksi za papo hapo za Dedicated IPv4 na Static ISP katika nchi 7.
Nunua Proksi za Python