በPython Requests ውስጥ ፕሮክሲን እንዴት መጠቀም እንደሚቻል (HTTP/HTTPS እና Session pooling)
Updated:
የPython requests ላይብረሪ ሁለቱንም የ'http' እና 'https' ስኪሞችን ወደ http://user:pass@ip:port የሚያገናኝ የproxies ዲክሽነሪ በመጠቀም የተረጋገጡ የVinaProxy ፕሮክሲዎችን ይቀበላል። ያንን ዲክሽነሪ ከቋሚ requests.Session() ጋር ማገናኘት ፈጣን እና ዝቅተኛ ጫና ላለው የweb scraping መሰረታዊ የTCP ሶኬቶችን ደጋግሞ ይጠቀማል።
proxies = {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}- 1 IP₫40,000
- 5+ IPs₫35,000
- 10+ IPs₫25,000
- 20+ IPs₫25,000
- 50+ IPs₫25,000
- 100+ IPs₫25,000
- 200+ IPs₫25,000
- 500+ IPs₫25,000
- 1000+ IPs₫22,000
- 2000+ IPs₫20,000
- 1 IP₫40,000
- 5+ IPs₫35,000
- 10+ IPs₫25,000
- 20+ IPs₫25,000
- 50+ IPs₫25,000
- 100+ IPs₫25,000
- 200+ IPs₫25,000
- 500+ IPs₫25,000
- 1000+ IPs₫22,000
- 2000+ IPs₫20,000
የproxies ዲክሽነሪን ማዘጋጀት እና Sessionsን ደጋግሞ መጠቀም
በእያንዳንዱ URL ላይ requests.get()ን መጥራት በእያንዳንዱ ጊዜ አዲስ የTCP ግንኙነት እና የTLS handshake ይፈጥራል። ፕሮክሲዎን ከsession = requests.Session() ጋር ማስተሳሰር ተከታታይ ጥያቄዎች በሚላኩበት ጊዜ ሁሉ የፕሮክሲ ቱቦው ክፍት ሆኖ እንዲቆይ ያደርጋል።
| የRequests ፓራሜትር | የሚመከር Syntax | ቴክኒካዊ ዓላማ |
|---|---|---|
የ'http' ቁልፍ | 'http://user:pass@ip:port' | መደበኛ የHTTP ጥያቄዎችን በፕሮክሲው በኩል ያስተላልፋል |
የ'https' ቁልፍ | 'http://user:pass@ip:port' | urllib3 ለTLS የHTTP CONNECT መተላለፊያ እንዲከፍት የhttp:// ስኪምን ይጠቀማል |
የtimeout ቱፕል | timeout=(5, 15) | የ5 ሰከንድ የግንኙነት እና የ15 ሰከንድ የማንበቢያ ጊዜ ገደብ የworker threads እንዳይቆሙ ይከላከላል |
| የፑል ማዘዋወር (Pool rotation) | itertools.cycle(proxy_list) | በእርስዎ የወሰኑ የስታቲክ IP ገንዳ ላይ እኩል ያዘዋውራል |
የተለመዱ የurllib3 እና የProxyError ስህተቶችን ማስወገድ
- የእርስዎ የፕሮክሲ ፖርት በተለየ ሁኔታ TLS-over-TLSን ካልፈለገ በስተቀር፣ ለሁለቱም የ
'http'እና'https'ዲክሽነሪ ቁልፎች ሁልጊዜ እንደ ፕሮክሲ URL ስኪምhttp://ን (https://ን ሳይሆን) ይጠቀሙ - በይለፍ ቃላት ውስጥ ያሉ ልዩ ቁምፊዎችን በ
urllib.parse.quote(password, safe='')በመጠቀም URL-encode ያድርጉ - የ
407 Proxy Authentication Requiredስህተት በURL ሕብረ-ቁምፊዎ ውስጥ ያለው የተጠቃሚ ስም ወይም የይለፍ ቃል ከዳሽቦርድ መረጃዎ ጋር አልተዛመደም ማለት ነው - ከ
httpx.Client(proxy='http://user:pass@ip:port')እና ከaiohttpsession.get(url, proxy=...)ጋር በተመሳሳይ መልኩ ይሰራል
ደረጃ በደረጃ
- 1
ip:port:user:passን ወደ URL አገባብ ይቀይሩ
የእርስዎን የVinaProxy ዝርዝር ወደ
http://user:pass@ip:portሕብረ-ቁምፊዎች ለመቀየር የእኛን Proxy Format Converter ይጠቀሙ። - 2
የproxies ዲክሽነሪን ይግለጹ
በPython ስክሪፕትዎ ውስጥ
proxies = {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}ብለው ያዘጋጁ። - 3
ከrequests.Session() ኢንስታንስ ጋር ያገናኙ
ለቀጣይ የ
Keep-Alivepooling፣s = requests.Session()ን ያስጀምሩ እናs.proxies.update(proxies)ን ይጥሩ። - 4
የመውጫ IPን በሙከራ ጥያቄ ያረጋግጡ
ንቁ የሆነውን የፕሮክሲ IP ለማረጋገጥ
print(s.get('https://vinaproxy.com/api/my-ip', timeout=10).json())ን ያሂዱ።
ተደጋግመው የሚጠየቁ ጥያቄዎች
የ'https' ቁልፍ ለምን 'http://user:pass@ip:port' ይጠቀማል?
የhttp:// ቅጥያ urllib3 ራሱ ከፕሮክሲ አገልጋዩ ጋር እንዴት እንደሚገናኝ (መደበኛ HTTP CONNECT በመጠቀም) የሚነግረው ሲሆን፣ ወደ ዒላማው https:// ድር ጣቢያ የሚደረገው ከጫፍ እስከ ጫፍ ትራፊክ ሙሉ በሙሉ በTLS የተመሰጠረ ሆኖ ይቆያል።
በPython ውስጥ 25 የስታቲክ ፕሮክሲዎችን በጥያቄዎች መካከል እንዴት ማዘዋወር እችላለሁ?
የ25ቱን ፕሮክሲዎች URL ወደ pool = itertools.cycle(PROXIES) ይጫኑ እና ተገቢ የሆነ የper-IP ምጣኔ ገደብ (rate limiting) በማድረግ ለእያንዳንዱ ጥያቄ proxies={'http': p, 'https': p}ን ያስተላልፉ።
VinaProxy በPython scraping ስክሪፕቶች ላይ ባንድዊድዝ ይለካል?
አይለካም። ሁሉም Dedicated IPv4 እና Static ISP ፕላኖች ያልተገደበ ወርሃዊ ትራፊክን ያካትታሉ።
ያልተገደበ የPython scraping ፑል ይገንቡ
ፈጣን Dedicated IPv4 እና Static ISP ፕሮክሲዎች በ7 አገራት ውስጥ።
የPython ፕሮክሲዎችን ይግዙ