Cara menggunakan proxy di Python Requests (HTTP/HTTPS & Session pooling)
Diperbarui:
Library requests di Python menerima proxy VinaProxy terotentikasi melalui kamus proxies yang memetakan skema 'http' dan 'https' ke http://user:pass@ip:port. Menyematkan kamus tersebut ke requests.Session() persisten dapat menggunakan kembali soket TCP yang ada untuk web scraping yang cepat dan hemat resource.
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
Format kamus proxies & pemanfaatan ulang Session
Memanggil requests.get() pada setiap URL secara terpisah akan membuat koneksi TCP dan jabat tangan TLS baru setiap saat. Menautkan proxy Anda ke session = requests.Session() menjaga terowongan proxy tetap terbuka di antara permintaan berurutan.
| Parameter Requests | Sintaks Rekomendasi | Tujuan Teknis |
|---|---|---|
Kunci 'http' | 'http://user:pass@ip:port' | Mengarahkan permintaan HTTP standar lewat proxy |
Kunci 'https' | 'http://user:pass@ip:port' | Menggunakan skema http:// agar urllib3 membuat tunnel HTTP CONNECT untuk TLS |
Tupel timeout | timeout=(5, 15) | Timeout koneksi 5 detik dan pembacaan 15 detik mencegah thread worker macet |
| Rotasi pool | itertools.cycle(proxy_list) | Mendistribusikan permintaan secara merata ke seluruh IP statis Anda |
Menghindari kendala umum pada urllib3 & ProxyError
- Selalu gunakan
http://(bukanhttps://) sebagai skema URL proxy untuk kunci'http'maupun'https', kecuali jika port proxy Anda secara eksplisit mewajibkan TLS-over-TLS - Gunakan
urllib.parse.quote(password, safe='')untuk meng-encode karakter khusus pada kata sandi Anda - Pesan error
407 Proxy Authentication Requiredmenandakan bahwa username atau password di string URL Anda tidak cocok dengan dashboard - Bekerja secara identik dengan
httpx.Client(proxy='http://user:pass@ip:port')danaiohttpviasession.get(url, proxy=...)
Langkah demi langkah
- 1
Konversi ip:port:user:pass ke sintaks URL
Gunakan Konverter Format Proxy kami untuk mengubah daftar VinaProxy Anda menjadi string
http://user:pass@ip:port. - 2
Definisikan kamus proxies
Deklarasikan
proxies = {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}di skrip Python Anda. - 3
Sematkan ke instance requests.Session()
Inisialisasi
s = requests.Session()dan jalankans.proxies.update(proxies)untuk mengaktifkan koneksiKeep-Alive. - 4
Verifikasi IP keluar dengan request uji coba
Jalankan
print(s.get('https://vinaproxy.com/api/my-ip', timeout=10).json())untuk memastikan IP proxy telah aktif.
Pertanyaan umum
Mengapa kunci 'https' tetap menggunakan 'http://user:pass@ip:port'?
Awalan http:// memberi tahu urllib3 protokol untuk menghubungi server proxy itu sendiri (melalui HTTP CONNECT), sementara lalu lintas data ke situs tujuan https:// tetap terenkripsi penuh dengan TLS.
Bagaimana cara merotasi 25 proxy statis antar-permintaan di Python?
Muat 25 URL proxy Anda ke dalam pool = itertools.cycle(PROXIES) dan kirimkan proxies={'http': p, 'https': p} di setiap request dengan rate limit yang wajar per IP.
Apakah VinaProxy membatasi kuota bandwidth untuk skrip Python scraping?
Tidak. Semua paket IPv4 Khusus dan ISP Statis menyediakan kuota bandwidth bulanan tanpa batas.
Bangun pool proxy scraping Python tanpa batas kuota
Proxy IPv4 khusus dan ISP statis instan di 7 negara strategis.
Beli Proxy Python