Python Requests-də proksidən necə istifadə etməli (HTTP/HTTPS və Session pooling)
Updated:
Python-un requests kitabxanası həm 'http', həm də 'https' sxemlərini http://user:pass@ip:port ünvanına yönləndirən proxies lüğəti vasitəsilə autentifikasiyalı VinaProxy proksilərini qəbul edir. Həmin lüğəti daimi requests.Session() obyektinə bağlamaq sürətli və az resurs tələb edən veb skreypinq üçün əsas TCP soketlərini yenidən istifadə edir.
proxies = {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}- 1 İP40.000 ₫
- 5+ İP35.000 ₫
- 10+ İP25.000 ₫
- 20+ İP25.000 ₫
- 50+ İP25.000 ₫
- 100+ İP25.000 ₫
- 200+ İP25.000 ₫
- 500+ İP25.000 ₫
- 1000+ İP22.000 ₫
- 2000+ İP20.000 ₫
- 1 İP40.000 ₫
- 5+ İP35.000 ₫
- 10+ İP25.000 ₫
- 20+ İP25.000 ₫
- 50+ İP25.000 ₫
- 100+ İP25.000 ₫
- 200+ İP25.000 ₫
- 500+ İP25.000 ₫
- 1000+ İP22.000 ₫
- 2000+ İP20.000 ₫
proxies lüğətinin formatlanması və Session-ların təkrar istifadəsi
Hər bir URL üzrə requests.get() çağırmaq hər dəfə tam yeni TCP bağlantısı və TLS əl sıxması yaradır. Proksinizi session = requests.Session() obyektinə bağlamaq ardıcıl sorğular boyunca proksi tunelini açıq saxlayır.
| Requests parametri | Tövsiyə olunan sintaksis | Texniki məqsəd |
|---|---|---|
'http' açarı | 'http://user:pass@ip:port' | Sadə HTTP sorğularını proksi vasitəsilə marşrutlaşdırır |
'https' açarı | 'http://user:pass@ip:port' | http:// sxemindən istifadə edir ki, urllib3 TLS üçün HTTP CONNECT tuneli açsın |
timeout korteji | timeout=(5, 15) | 5 san qoşulma və 15 san oxuma taymautu işçi axınların donub qalmasının qarşısını alır |
| Hovuz rotasiyası | itertools.cycle(proxy_list) | Xüsusi statik IP hovuzunuz üzrə bərabər şəkildə dövr edir |
Ümumi urllib3 və ProxyError tələlərindən yayınma
- Proksi portunuz açıq şəkildə TLS-over-TLS tələb etmədiyi halda, həm
'http', həm də'https'lüğət açarları üçün proksi URL sxemi kimi həmişəhttp://(https://deyil) istifadə edin urllib.parse.quote(password, safe='')istifadə edərək parollardakı xüsusi simvolları URL formatında kodlaşdırın407 Proxy Authentication Requiredxətası URL sətrinizdəki istifadəçi adı və ya parolun idarəetmə panelindəki məlumatlarınızla uyğun gəlmədiyini bildirirhttpx.Client(proxy='http://user:pass@ip:port')vəaiohttpsession.get(url, proxy=...)ilə tamamilə eyni şəkildə işləyir
Addım-addım
- 1
ip:port:user:pass formatını URL sintaksisinə çevirin
VinaProxy siyahınızı
http://user:pass@ip:portsətirlərinə çevirmək üçün Proksi Format Çeviricisi alətimizdən istifadə edin. - 2
proxies lüğətini təyin edin
Python skriptinizdə
proxies = {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}təyin edin. - 3
requests.Session() nüsxəsinə bağlayın
Daimi
Keep-Alivepulinqi üçüns = requests.Session()başladın vəs.proxies.update(proxies)çağırın. - 4
Test sorğusu ilə çıxış IP-sini yoxlayın
Aktiv proksi IP-sini təsdiqləmək üçün
print(s.get('https://vinaproxy.com/api/my-ip', timeout=10).json())əmrini işə salın.
Tez-tez verilən suallar
'https' açarı niyə 'http://user:pass@ip:port' istifadə edir?
http:// prefiksi urllib3 kitabxanasına proksi serverinin özünə necə qoşulacağını (standart HTTP CONNECT vasitəsilə) bildirir, hədəf https:// veb-saytına olan uçdan-uca trafikiniz isə tam TLS ilə şifrələnmiş qalır.
Python-da sorğular arasında 25 statik proksini necə rotasiya edə bilərəm?
25 proksi URL-inizi pool = itertools.cycle(PROXIES) strukturuna yükləyin və hər IP üzrə mülayim sürət məhdudiyyəti ilə hər sorğuya proxies={'http': p, 'https': p} ötürün.
VinaProxy Python skreypinq skriptlərində trafikə məhdudiyyət qoyurmu?
Xeyr. Bütün Dedicated IPv4 və Static ISP planlarına limitsiz aylıq trafik daxildir.
Limitsiz Python skreypinq hovuzu qurun
7 ölkə üzrə dərhal aktivləşən Dedicated IPv4 və Static ISP proksiləri.
Python Proksiləri Alın