# 503 Service Unavailable przy scrapowaniu: co oznacza i jak naprawić

> 503 Service Unavailable przez proxy: przeciążenie celu, prace konserwacyjne, strona wyzwania lub zbyt wąskie targetowanie. Jak rozpoznać i naprawić.

- URL: https://crawlrelay.com/pl/docs/errors/503-service-unavailable/
- Ostatnia aktualizacja: 2026-10-13
- Publisher: CrawlRelay (https://crawlrelay.com)

Kod HTTP (5xx, błąd serwera): dokładny komunikat w każdym narzędziu, możliwe przyczyny w kolejności oraz działające rozwiązanie.

**Szybka odpowiedź — Co oznacza 503 Service Unavailable w kontekście proxy?**

**503 Service Unavailable** oznacza, że serwer nie może obsłużyć żądania w danym momencie z powodu przeciążenia, prac konserwacyjnych lub reguły ochronnej. Korzystając z residential proxy CrawlRelay, przeczytaj nagłówek `Retry-After` i treść odpowiedzi: przeciążenie lub konserwacja ustępują z czasem, a strona wyzwania oznacza filtrowanie ruchu automatycznego i konieczność zwolnienia tempa.

## 503 Service Unavailable w skrócie

| Atrybut | Wartość |
| --- | --- |
| Błąd | 503 Service Unavailable |
| Typ | Kod HTTP (5xx, błąd serwera) |
| Wysłane przez | Docelowa strona, jej CDN lub proxy, gdy nie ma dostępnego wyjścia |
| Zdefiniowano w | RFC 9110, section 15.6.4 (Retry-After: section 10.2.3) |
| Spróbować ponownie? | Tak, po Retry-After lub czasie odczekania |
| Najpierw sprawdź | Sprawdź nagłówek Retry-After i czy treść to strona wyzwania CDN |

## Co oznacza 503 Service Unavailable?

RFC 9110 definiuje 503 jako stan tymczasowy. Serwer działa, ale nie jest w stanie obsłużyć tego żądania teraz i może poinformować, kiedy wrócić, za pomocą `Retry-After`.

W praktyce ten kod dzielą trzy sytuacje: strona przeciążona lub w konserwacji, CDN serwujące stronę wyzwania dla ruchu uznanego za automatyczny oraz proxy gateway bez dostępnego wyjścia przy bardzo wąskim targetowaniu. Treść i nagłówki pozwalają je rozróżnić.

## Jak wygląda a 503 w Python, curl, Node.js i przeglądarkach?

Ten sam błąd wyświetla się inaczej w każdym narzędziu. Oto komunikaty, które warto wyszukać w logach:

- **Python requests / httpx:** `status_code == 503`, czasem z `Retry-After`
- **Scrapy:** domyślnie ponawia (503 jest w `RETRY_HTTP_CODES`)
- **curl:** `HTTP/2 503`, często z nagłówkiem `server:` wskazującym CDN
- **Przeglądarki:** strona konserwacji lub pośrednia strona weryfikacji

## Co powoduje a 503?

Najczęściej na początku:

- **Przeciążenie lub konserwacja** na stronie docelowej, często z nagłówkiem `Retry-After`.
- **Strona wyzwania** serwowana przez CDN klientom, którzy mają być sprawdzeni, ze statusem 503 lub 403.
- **Twój własny ruch**, jeśli crawler generuje duży procent ruchu na tej stronie.
- **Wąskie targetowanie**, np. małe miasto, gdy w danym momencie brak pasujących wyjść.
- **Awaria upstream** w CDN lub chmurze używanej przez stronę.

## Jak krok po kroku zdiagnozować a 503?

1. Przeczytaj nagłówki `Retry-After` i `server`, a potem sprawdź tytuł HTML w treści.
2. Załaduj stronę w przeglądarce z tego samego kraju, aby zobaczyć, co widzi człowiek.
3. Wstrzymaj crawler na kilka minut i przetestuj pojedyncze żądanie: jeśli zadziała, to Twój ruch był przyczyną.
4. Poszerz targetowanie do poziomu kraju i porównaj wyniki.

*Przetestuj nie działający URL za pomocą curl (port HTTP, tryb verbose)*

```bash
# Use the URL that fails; with https://api.ipify.org instead, you test the gateway alone.
# "HTTP/1.1 200 Connection established" first, then the site's own status: the site answered.
curl -v -x http://USERNAME:PASSWORD@gw.crawlrelay.com:7777 https://TARGET_URL

# Same test through the SOCKS5 port, with DNS resolved at the exit
curl -v --socks5-hostname gw.crawlrelay.com:7778 --proxy-user USERNAME:PASSWORD https://TARGET_URL
```

## Jak naprawić a 503?

- **Czekaj i ponów** z opóźnieniem `Retry-After` lub stosuj wykładniczy backoff.
- **Zmniejsz obciążenie** na tym hoście: mniej równoległych żądań, dłuższe opóźnienia, cache.
- **Traktuj stronę wyzwania jako sygnał do zatrzymania** tempa. Nie korzystaj z narzędzi do rozwiązywania CAPTCHA ani ukrywania przeglądarki, aby ją ominąć; zwolnij tempo i skontaktuj się ze stroną, jeśli potrzebujesz dostępu.
- **Poszerz targetowanie** jeśli 503 pojawia się z wąskim filtrem miasta.

*Python: ponów próbę z Retry-After, wykładniczym opóźnieniem i jitterem*

```python
import random
import time

import requests

PROXY = "http://USERNAME:PASSWORD@gw.crawlrelay.com:7777"
PROXIES = {"http": PROXY, "https": PROXY}
RETRY_STATUSES = {429, 502, 503, 504}


def fetch(url, attempts=5, timeout=(10, 30)):
    for attempt in range(attempts):
        try:
            r = requests.get(url, proxies=PROXIES, timeout=timeout)
        except (requests.exceptions.ConnectionError, requests.exceptions.Timeout):
            r = None  # dropped exit, reset or timeout: a new connection gets a new exit
        if r is not None and r.status_code not in RETRY_STATUSES:
            return r
        retry_after = r.headers.get("Retry-After", "") if r is not None else ""
        if retry_after.isdigit():
            wait = int(retry_after)
        else:
            wait = min(60, 2 ** attempt) + random.uniform(0, 1)
        time.sleep(wait)
    raise RuntimeError("giving up on %s after %d attempts" % (url, attempts))
```

## Czy warto ponawiać próbę po a 503?

Ponawiaj 503, ale cierpliwie. Używaj `Retry-After`, jeśli jest dostępny, w przeciwnym razie stosuj wykładniczy backoff od kilku sekund do minuty lub dwóch. Jeśli host zwraca 503 dla większości żądań przez więcej niż kilka minut, wstrzymaj go całkowicie i wróć później. W logach licz strony wyzwania oddzielnie od rzeczywistych awarii.

## Jak 503 Service Unavailable odnosi się do CrawlRelay?

CrawlRelay wysyła Twoje żądanie przez residential IP dobrany do targetowania. Targetowanie na poziomie kraju korzysta z najszerszego zestawu wyjść; na poziomie miasta – węższego. Jeśli 503 pojawia się tylko z filtrem miasta, przetestuj ten sam request z samym krajem przed zmianą czegokolwiek.

Gateway: `gw.crawlrelay.com`, port 7777 (HTTP, HTTPS przez CONNECT) i port 7778 (SOCKS5). Format nazwy użytkownika: `USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}`. Powiązane: [429 Too Many Requests](https://crawlrelay.com/pl/docs/errors/429-too-many-requests/) · [502 Bad Gateway](https://crawlrelay.com/pl/docs/errors/502-bad-gateway/) · [504 Gateway Timeout](https://crawlrelay.com/pl/docs/errors/504-gateway-timeout/).

## 503 Service Unavailable: pytania, które zadają deweloperzy

### Dlaczego 503 pojawia się tylko przez proxy, a nie w domu?

Albo strona traktuje Twój ruch z proxy inaczej, często pokazując stronę wyzwania, albo targetowanie jest tak wąskie, że wyjścia są rzadkie. Porównaj treść odpowiedzi w obu przypadkach. Strona wyzwania oznacza zwolnienie tempa; krótki komunikat proxy i wąskie targetowanie oznacza rozszerzenie filtra lokalizacji.

### Czy 503 oznacza zablokowanie?

Nie. Prawdziwy 503 jest tymczasowy i ustępuje z czasem. Strona wyzwania z 503 jest filtrem, zwykle oznaczającym, że Twoje tempo lub wzór ruchu wygląda na automatyczny. Zmniejsz współbieżność i dodaj opóźnienia. Jeśli strona nie chce automatycznego dostępu wcale, szanuj to i poszukaj API lub licencjonowanych danych.

### Ile razy powinienem ponawiać 503?

Trzy do pięciu ponowień z wykładniczym backoff to rozsądny limit dla jednego URL. Po tym wstrzymaj cały host zamiast ponawiać pojedyncze URL, bo strona mająca problem nie poprawi się szybciej przy ponowieniach. Zaloguj host i czas, aby można było wznowić później.

## Inne błędy proxy w tym odniesieniu

- [401 Unauthorized vs 407](https://crawlrelay.com/pl/docs/errors/401-unauthorized/)
- [403 Forbidden](https://crawlrelay.com/pl/docs/errors/403-forbidden/)
- [407 Proxy Authentication Required](https://crawlrelay.com/pl/docs/errors/407-proxy-authentication-required/)
- [429 Too Many Requests](https://crawlrelay.com/pl/docs/errors/429-too-many-requests/)
- [502 Bad Gateway](https://crawlrelay.com/pl/docs/errors/502-bad-gateway/)
- [503 Service Unavailable](https://crawlrelay.com/pl/docs/errors/503-service-unavailable/)
- [504 Gateway Timeout](https://crawlrelay.com/pl/docs/errors/504-gateway-timeout/)
- [Cannot connect to proxy (ProxyError)](https://crawlrelay.com/pl/docs/errors/cannot-connect-to-proxy/)
- [Connection reset by peer (ECONNRESET)](https://crawlrelay.com/pl/docs/errors/connection-reset/)
- [ERR_PROXY_CONNECTION_FAILED](https://crawlrelay.com/pl/docs/errors/err-proxy-connection-failed/)
- [ERR_TUNNEL_CONNECTION_FAILED](https://crawlrelay.com/pl/docs/errors/err-tunnel-connection-failed/)
- [Read timed out (ReadTimeout)](https://crawlrelay.com/pl/docs/errors/read-timeout/)
- [SOCKS5 proxy errors](https://crawlrelay.com/pl/docs/errors/socks5-proxy-errors/)
- [SSL: CERTIFICATE_VERIFY_FAILED](https://crawlrelay.com/pl/docs/errors/ssl-certificate-verify-failed/)
- [SSL: WRONG_VERSION_NUMBER](https://crawlrelay.com/pl/docs/errors/ssl-wrong-version-number/)

**Proxy rezydencjalne z dokumentacją opisującą przypadki błędów** CrawlRelay proxy rezydencjalne od 0,50 USD/GB, ruch, który nigdy nie wygasa. [Zobacz ceny](https://crawlrelay.com/pl/pricing/) · [Szybki start](https://crawlrelay.com/pl/docs/)

---

CrawlRelay: CrawlRelay to serwis proxy rezydencjalne i mobilne proxy 4G/5G z rotacją, stworzony dla programistów i potoków danych AI: ruch bez wygasania w modelu pay-as-you-go od 0,50 USD/GB, płatny w kryptowalutach, bez konieczności przesyłania dokumentów. Bez KYC — brak dowodu, selfie i dokumentów. Płać w kryptowalutach.
