როგორ გამოვიყენოთ პროქსი Python Requests-ში (HTTP/HTTPS და Session pooling)
Updated:
Python-ის requests ბიბლიოთეკა იღებს აუთენტიფიცირებულ VinaProxy პროქსებს proxies ლექსიკონით, რომელიც ასახავს როგორც 'http', ისე 'https' სქემებს http://user:pass@ip:port-ზე. ამ ლექსიკონის მიბმა მუდმივ requests.Session()-ზე ხელახლა იყენებს ძირითად TCP სოკეტებს სწრაფი და მცირე დანახარჯების მქონე ვებ სკრეიპინგისთვის.
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
proxies ლექსიკონის ფორმატირება და Session-ების ხელახალი გამოყენება
ყოველ URL-ზე requests.get()-ის გამოძახება ყოველ ჯერზე ქმნის სრულიად ახალ TCP კავშირს და TLS handshake-ს. პროქსის მიბმა session = requests.Session()-თან ინარჩუნებს პროქსი გვირაბს ღიად თანმიმდევრული მოთხოვნების განმავლობაში.
| Requests პარამეტრი | რეკომენდებული სინტაქსი | ტექნიკური დანიშნულება |
|---|---|---|
'http' გასაღები | 'http://user:pass@ip:port' | მარშრუტიზაციას უწევს ჩვეულებრივ HTTP მოთხოვნებს პროქსის გავლით |
'https' გასაღები | 'http://user:pass@ip:port' | იყენებს http:// სქემას, რათა urllib3-მ შექმნას HTTP CONNECT გვირაბი TLS-ისთვის |
timeout კორტეჟი | timeout=(5, 15) | 5 წმ დაკავშირების და 15 წმ წაკითხვის timeout თავიდან აცილებს worker ნაკადების გაჭედვას |
| პულის როტაცია | itertools.cycle(proxy_list) | თანაბრად ანაცვლებს თქვენს გამოყოფილ სტატიკურ IP პულს |
ხშირი urllib3 და ProxyError შეცდომების თავიდან არიდება
- ყოველთვის გამოიყენეთ
http://(და არაhttps://), როგორც პროქსის URL სქემა როგორც'http', ისე'https'ლექსიკონის გასაღებებისთვის, თუ თქვენი პროქსი პორტი პირდაპირ არ მოითხოვს TLS-over-TLS-ს - გადაიყვანეთ სპეციალური სიმბოლოები პაროლში URL-ენკოდირებით
urllib.parse.quote(password, safe='')-ის გამოყენებით 407 Proxy Authentication Requiredშეცდომა ნიშნავს, რომ თქვენი URL სტრიქონის მომხმარებლის სახელი ან პაროლი არ დაემთხვა თქვენი მართვის პანელის მონაცემებს- იდენტურად მუშაობს
httpx.Client(proxy='http://user:pass@ip:port')-თან დაaiohttp-ისsession.get(url, proxy=...)-თან
ნაბიჯ-ნაბიჯ
- 1
ip:port:user:pass-ის გადაყვანა URL სინტაქსში
გამოიყენეთ ჩვენი Proxy Format Converter, რათა გარდაქმნათ თქვენი VinaProxy სია
http://user:pass@ip:portსტრიქონებად. - 2
განსაზღვრეთ proxies ლექსიკონი
მიუთითეთ
proxies = {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}თქვენს Python სკრიპტში. - 3
მიაბით requests.Session() ეგზემპლარს
დააინიციალიზეთ
s = requests.Session()და გამოიძახეთs.proxies.update(proxies)მუდმივიKeep-Aliveპულინგისთვის. - 4
შეამოწმეთ გამავალი IP სატესტო მოთხოვნით
გაუშვით
print(s.get('https://vinaproxy.com/api/my-ip', timeout=10).json())აქტიური პროქსი IP-ის დასადასტურებლად.
ხშირად დასმული კითხვები
რატომ იყენებს 'https' გასაღები 'http://user:pass@ip:port'-ს?
http:// პრეფიქსი ეუბნება urllib3-ს, თუ როგორ დაუკავშირდეს თავად პროქსი სერვერს (სტანდარტული HTTP CONNECT-ის გამოყენებით), ხოლო თქვენი საბოლოო ტრაფიკი სამიზნე https:// ვებსაიტამდე რჩება სრულად TLS-შიფრული.
როგორ დავაროტაციო 25 სტატიკური პროქსი მოთხოვნებს შორის Python-ში?
ჩატვირთეთ თქვენი 25 პროქსის URL pool = itertools.cycle(PROXIES)-ში და გადაეცით proxies={'http': p, 'https': p} თითოეულ მოთხოვნაზე ზომიერი per-IP rate limiting-ით.
ზღუდავს თუ არა VinaProxy ტრაფიკს Python სკრეიპინგის სკრიპტებზე?
არა. Dedicated IPv4 და Static ISP ყველა ტარიფი მოიცავს ულიმიტო ყოველთვიურ ტრაფიკს.
შექმენით ულიმიტო Python სკრეიპინგის პული
მყისიერი Dedicated IPv4 და Static ISP პროქსები 7 ქვეყანაში.
შეიძინეთ Python პროქსები