Jawaban cepat
Bagaimana cara mengetahui mengapa permintaan melalui proxy gagal?
Pertama cari tahu siapa yang menjawab: gateway proxy (407, kegagalan CONNECT, beberapa 502 dan 504), situs web (401, 403, 429, sebagian besar 503), atau klien Anda sendiri (kesalahan TLS dan timeout). Kemudian cocokkan pesan tepatnya ke halaman di bawah ini. Referensi ini mencakup 15 kesalahan yang ditemui scraper dengan CrawlRelay proxy residensial atau proxy HTTP atau SOCKS5 mana pun, dengan kode untuk memperbaiki masing-masing.
Kesalahan mana yang saya lihat?
Temukan gejala Anda, lalu buka halaman untuk diagnosis lengkap.
| Gejala | Dikirim oleh | Ulangi? | Halaman |
|---|---|---|---|
407, 'Koneksi tunnel gagal: 407' | Proxy | Tidak | 407 Proxy Authentication Required |
401 dengan WWW-Authenticate | Situs web | Tidak | 401 vs 407 |
403 halaman atau pesan firewall | Situs web | Sekali, lalu berhenti | 403 Forbidden |
429, sering dengan Retry-After | Situs web | Ya, nanti | 429 Too Many Requests |
502, 'CONNECT tunnel gagal, respons 502' | Proxy atau CDN | Ya, exit baru | 502 Bad Gateway |
503, halaman pemeliharaan atau tantangan | Situs web atau CDN | Ya, dengan penundaan | 503 Service Unavailable |
504 | Proxy atau CDN | Sekali atau dua kali | 504 Gateway Timeout |
net::ERR_TUNNEL_CONNECTION_FAILED | Browser (proxy menolak CONNECT) | Setelah memperbaiki penyebabnya | ERR_TUNNEL_CONNECTION_FAILED |
net::ERR_PROXY_CONNECTION_FAILED | Browser (proxy tidak dapat dijangkau) | Tidak | ERR_PROXY_CONNECTION_FAILED |
ProxyError: Unable to connect to proxy | Klien Python | Tergantung penyebabnya | Tidak dapat terhubung ke proxy |
[SSL: WRONG_VERSION_NUMBER] | Perpustakaan TLS Anda | Tidak | SSL: WRONG_VERSION_NUMBER |
CERTIFICATE_VERIFY_FAILED | Perpustakaan TLS Anda | Tidak | Verifikasi sertifikat gagal |
ReadTimeout, 'Waktu baca habis' | Klien Anda | Ya, exit baru | Waktu baca habis |
ECONNRESET, 'socket hang up', 'Koneksi direset oleh peer' | Jaringan | Ya, permintaan aman | Koneksi direset |
| 'Ketergantungan hilang untuk dukungan SOCKS', kesalahan curl 97 | Klien atau server SOCKS | Tergantung | Kesalahan SOCKS5 |
Semua kesalahan berdasarkan tipe
Kode status HTTP
- 401 Unauthorized vs 407
- 403 Forbidden
- 407 Proxy Authentication Required
- 429 Too Many Requests
- 502 Bad Gateway
- 503 Service Unavailable
- 504 Gateway Timeout
Kesalahan browser dan klien
Error koneksi dan TLS
Kesalahan apa yang harus dicoba ulang secara otomatis oleh scraper?
Coba ulang yang bisa berubah dengan sendirinya, dan hentikan yang tidak bisa:
- Coba ulang dengan koneksi baru: 502, 504, koneksi direset dan waktu baca habis. Koneksi baru biasanya mendapatkan keluaran proxy residensial berbeda.
- Coba ulang nanti, lebih pelan: 429 dan 503. Tunggu
Retry-Afteratau lakukan back off eksponensial dengan jitter, dan kurangi konkurensi pada host itu. - Coba sekali, lalu hentikan: 403. Satu kali coba ulang dengan IP baru memisahkan alamat yang ditandai dari aturan situs.
- Jangan pernah coba ulang secara membabi buta: 407, 401, kesalahan TLS dan proxy yang tidak dapat dijangkau. Itu masalah konfigurasi.
Panduan Python menunjukkan kebijakan coba ulang yang mengikuti aturan ini dengan urllib3's Retry.
Bagaimana cara saya mencatat kesalahan agar mudah diperbaiki?
Catat lima bidang untuk setiap permintaan yang gagal: host URL, kode status atau kelas pengecualian, ID sesi jika ada, waktu ke byte pertama, dan 200 karakter pertama isi respons. Isi respons memberi tahu apakah kesalahan berasal dari CDN, firewall atau proxy. Hitung kesalahan per host dan per status setiap menit: lonjakan pada satu host berarti situs itu mengubah sesuatu; lonjakan pada semua host berarti pengaturan atau jaringan Anda bermasalah.
Referensi kesalahan: pertanyaan
Bagaimana saya tahu apakah kesalahan berasal dari proxy atau dari situs web?
Lihat di mana kesalahan terjadi. Kesalahan selama langkah CONNECT, yang ditunjukkan oleh curl -v sebelum proses TLS handshake, berasal dari proxy: 407, atau 502 atau 504 pada CONNECT. Status yang muncul setelah TLS handshake, dengan header dan HTML situs, berasal dari situs web. Kesalahan klien seperti timeout dan kegagalan TLS berasal dari kode atau jaringan Anda sendiri.
Apakah permintaan yang gagal dikenai biaya?
Lalu lintas dihitung dalam byte yang lewat melalui gateway, jadi respons kesalahan yang tidak pernah sampai ke situs web, seperti 407, hampir tidak menggunakan data. Halaman blokir dari situs web adalah respons normal dan memiliki ukuran seperti halaman lain. Kurangi keduanya dengan memperbaiki kesalahan konfigurasi sejak awal dan memperlambat pada 403 dan 429.
Berapa tingkat kesalahan normal untuk scraper yang menggunakan proxy residensial?
Tergantung pada targetnya. Riset Proxyway 2026 mengukur tingkat keberhasilan median 99,28% pada jaringan proxy residensial namun 74,43% pada target nyata yang dilindungi seperti Amazon, Google, dan Instagram. Ukur target Anda sendiri dan pantau tingkatnya dari waktu ke waktu: perubahan mendadak lebih penting daripada angka mutlak.