Cara menggunakan proksi dalam Python Requests (HTTP/HTTPS & pengumpulan Sesi)
Updated:
Pustaka requests Python menerima proksi VinaProxy yang disahkan melalui kamus proxies yang memetakan kedua-dua skema 'http' dan 'https' kepada http://user:pass@ip:port. Memasang kamus tersebut pada requests.Session() yang berterusan menggunakan semula soket TCP dasar untuk pengikisan web yang pantas dan berkos overhed rendah.
proxies = {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}- 1 IP₫40,000
- 5+ IP₫35,000
- 10+ IP₫25,000
- 20+ IP₫25,000
- 50+ IP₫25,000
- 100+ IP₫25,000
- 200+ IP₫25,000
- 500+ IP₫25,000
- 1000+ IP₫22,000
- 2000+ IP₫20,000
- 1 IP₫40,000
- 5+ IP₫35,000
- 10+ IP₫25,000
- 20+ IP₫25,000
- 50+ IP₫25,000
- 100+ IP₫25,000
- 200+ IP₫25,000
- 500+ IP₫25,000
- 1000+ IP₫22,000
- 2000+ IP₫20,000
Memformat kamus proxies & menggunakan semula Sesi
Memanggil requests.get() pada setiap URL mencipta sambungan TCP dan jabat tangan TLS yang baharu setiap kali. Mengikat proksi anda pada session = requests.Session() memastikan terowong proksi kekal terbuka merentasi permintaan berturut-turut.
| Parameter Requests | Sintaks Disyorkan | Tujuan Teknikal |
|---|---|---|
Kunci 'http' | 'http://user:pass@ip:port' | Mengarahkan permintaan HTTP biasa melalui proksi |
Kunci 'https' | 'http://user:pass@ip:port' | Menggunakan skema http:// supaya urllib3 mengeluarkan terowong HTTP CONNECT untuk TLS |
Tupel timeout | timeout=(5, 15) | Had masa sambung 5s dan had masa baca 15s mengelakkan bebenang pekerja tergantung |
| Putaran kolam | itertools.cycle(proxy_list) | Berputar secara sama rata merentasi kolam IP statik khas anda |
Mengelakkan kesilapan biasa urllib3 & ProxyError
- Sentiasa gunakan
http://(bukanhttps://) sebagai skema URL proksi untuk kedua-dua kunci kamus'http'dan'https'melainkan port proksi anda secara eksplisit memerlukan TLS-over-TLS - Enkod URL aksara khas dalam kata laluan menggunakan
urllib.parse.quote(password, safe='') - Ralat
407 Proxy Authentication Requiredbermaksud nama pengguna atau kata laluan dalam rentetan URL anda tidak sepadan dengan kelayakan papan pemuka anda - Berfungsi sama dengan
httpx.Client(proxy='http://user:pass@ip:port')danaiohttpsession.get(url, proxy=...)
Langkah demi langkah
- 1
Tukar ip:port:user:pass kepada sintaks URL
Gunakan Penukar Format Proksi kami untuk mengubah senarai VinaProxy anda kepada rentetan
http://user:pass@ip:port. - 2
Tentukan kamus proxies
Tetapkan
proxies = {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}dalam skrip Python anda. - 3
Pasang pada tika requests.Session()
Mulakan
s = requests.Session()dan panggils.proxies.update(proxies)untuk pengumpulanKeep-Aliveyang berterusan. - 4
Sahkan IP keluar dengan permintaan ujian
Jalankan
print(s.get('https://vinaproxy.com/api/my-ip', timeout=10).json())untuk mengesahkan IP proksi yang aktif.
Soalan lazim
Mengapakah kunci 'https' menggunakan 'http://user:pass@ip:port'?
Awalan http:// memberitahu urllib3 cara untuk menyambung ke pelayan proksi itu sendiri (menggunakan HTTP CONNECT standard), manakala trafik hujung-ke-hujung anda ke tapak web https:// sasaran kekal disulitkan sepenuhnya dengan TLS.
Bagaimanakah cara saya memutar 25 proksi statik merentasi permintaan dalam Python?
Muatkan 25 URL proksi anda ke dalam pool = itertools.cycle(PROXIES) dan hantar proxies={'http': p, 'https': p} bagi setiap permintaan dengan pengehadan kadar per IP yang berhemah.
Adakah VinaProxy mengehadkan lebar jalur pada skrip pengikisan Python?
Tidak. Semua pelan Dedicated IPv4 dan Static ISP menyertakan trafik bulanan tanpa had.
Bina kolam pengikisan Python tanpa had
Proksi Dedicated IPv4 dan Static ISP serta-merta merentasi 7 negara.
Beli Proksi Python