Szybka odpowiedź
Jak sprawdzić, dlaczego żądanie przez proxy nie powiodło się?
Najpierw dowiedz się, kto odpowiedział: brama proxy (407, błędy CONNECT, niektóre 502 i 504), strona internetowa (401, 403, 429, większość 503) lub twój własny klient (błędy TLS i timeout). Następnie dopasuj dokładny komunikat do strony poniżej. To odniesienie obejmuje 15 błędów, z jakimi spotykają się scraperzy używając CrawlRelay proxy rezydencjalnych lub dowolnego proxy HTTP czy SOCKS5, wraz z kodem naprawczym dla każdego z nich.
Jakiego błędu szukam?
Znajdź swój objaw, a następnie otwórz odpowiednią stronę, aby poznać pełną diagnozę.
| Objaw | Wysłane przez | Spróbować ponownie? | Strona |
|---|---|---|---|
407, 'Nie udało się nawiązać tunelu: 407' | Proxy | Nie | 407 Proxy Authentication Required |
401 z WWW-Authenticate | Strona internetowa | Nie | 401 vs 407 |
403 strona lub komunikat zapory | Strona internetowa | Raz, potem zatrzymaj | 403 Forbidden |
429, często z Retry-After | Strona internetowa | Tak, później | 429 Too Many Requests |
502, 'Tunel CONNECT nie powiódł się, odpowiedź 502' | Proxy lub CDN | Tak, nowa exit | 502 Bad Gateway |
503, strona konserwacji lub wyzwanie | Strona internetowa lub CDN | Tak, z opóźnieniem | 503 Service Unavailable |
504 | Proxy lub CDN | Raz lub dwa razy | 504 Gateway Timeout |
net::ERR_TUNNEL_CONNECTION_FAILED | Przeglądarka (proxy odmówił CONNECT) | Po naprawieniu przyczyny | ERR_TUNNEL_CONNECTION_FAILED |
net::ERR_PROXY_CONNECTION_FAILED | Przeglądarka (proxy nieosiągalny) | Nie | ERR_PROXY_CONNECTION_FAILED |
ProxyError: Unable to connect to proxy | Klient Python | Zależy od przyczyny | Nie można połączyć się z proxy |
[SSL: WRONG_VERSION_NUMBER] | Twoja biblioteka TLS | Nie | SSL: NIEPRAWIDŁOWA_WERSJA_NUMER |
CERTIFICATE_VERIFY_FAILED | Twoja biblioteka TLS | Nie | Weryfikacja certyfikatu nie powiodła się |
ReadTimeout, 'Przekroczono czas odczytu' | Twój klient | Tak, nowa exit | Przekroczono czas odczytu |
ECONNRESET, 'zerwanie gniazda', 'Reset połączenia przez drugą stronę' | Sieć | Tak, bezpieczne żądania | Reset połączenia |
| 'Brak niezbędnych zależności do obsługi SOCKS', błąd curl 97 | Klient lub serwer SOCKS | Zależy | Błędy SOCKS5 |
Wszystkie błędy według typu
Kody statusu HTTP
- 401 Unauthorized vs 407
- 403 Forbidden
- 407 Proxy Authentication Required
- 429 Too Many Requests
- 502 Bad Gateway
- 503 Service Unavailable
- 504 Gateway Timeout
Błędy w przeglądarce i kliencie
Błędy połączenia i TLS
Które błędy scraper powinien automatycznie ponawiać?
Ponów to, co może się samo zmienić, i zatrzymaj na tym, co nie:
- Ponów z nowym połączeniem: 502, 504, reset połączenia i przekroczenia czasu odczytu. Nowe połączenie zazwyczaj ma inny residential exit.
- Ponów później, wolniej: 429 oraz 503. Poczekaj na
Retry-Afterlub zastosuj wykładnicze cofanie z losowym opóźnieniem i zmniejsz współbieżność na tym hoście. - Ponów raz, potem zatrzymaj: 403. Jedna próba na nowym IP rozdziela zablokowany adres od reguły strony.
- Nigdy nie ponawiaj bezmyślnie: 407, 401, błędy TLS i niedostępne proxy rezydencjalne. To problemy konfiguracyjne.
Przewodnik Python pokazuje politykę ponawiania zgodną z tymi zasadami za pomocą urllib3 i Retry.
Jak logować błędy, aby były łatwe do debugowania?
Zaloguj pięć pól dla każdego nieudanego żądania: host URL, kod statusu lub klasę wyjątku, ID sesji jeśli jest, czas do pierwszego bajtu i pierwsze 200 znaków ciała odpowiedzi. Ciało mówi, czy stronę błędu wygenerował CDN, zapora czy proxy. Licz błędy na hosta i kod statusu co minutę: skok na jednym hoście oznacza zmianę na stronie; skok na wszystkich hostach oznacza problem w Twojej konfiguracji lub sieci.
Odwołanie do błędów: pytania
Jak rozpoznać, czy błąd pochodzi od proxy rezydencjalnego czy strony?
Sprawdź gdzie wystąpił. Błędy podczas kroku CONNECT, pokazywane przez curl -v przed rozpoczęciem TLS, pochodzą od proxy: 407 lub 502/504 przy CONNECT. Kody statusu po nawiązaniu TLS, zawierające nagłówki i HTML strony, pochodzą od witryny. Błędy klienta, jak timeouty i awarie TLS, wynikają z Twojego kodu lub sieci.
Czy nieudane żądania są naliczane?
Ruch liczony jest w bajtach przepływających przez bramę, więc odpowiedź błędu, która nigdy nie dotarła do strony, np. 407, praktycznie nie zużywa transferu. Strona blokady z witryny to normalna odpowiedź i ma rozmiar jak każda inna. Ogranicz oba typy, szybko naprawiając błędy konfiguracji i zwalniając na 403 i 429.
Jaka jest normalna liczba błędów w scraperze korzystającym z proxy rezydencjalnych?
To zależy od celów. Badanie Proxyway z 2026 roku wykazało medianę skuteczności 99,28% na sieciach proxy rezydencjalnych, ale tylko 74,43% na chronionych realnych celach jak Amazon, Google czy Instagram. Mierz własne cele i śledź wskaźnik w czasie: nagła zmiana jest ważniejsza niż liczba absolutna.