Hızlı cevap
Konut proxy ile 503 Service Unavailable ne anlama gelir?
503 Service Unavailable sunucunun şu anda isteği işleyemediği anlamına gelir; aşırı yük, bakım veya koruyucu bir kural nedeniyle. CrawlRelay ev tipi proxyleri üzerinden Retry-After başlığını ve yanıt gövdesini okuyun: bakım veya aşırı yük 503 zamanla geçer, zorlama sayfası ise sitenin otomatik trafiği filtrelediğini gösterir ve yavaşlamalısınız.
503 Service Unavailable hızlı bakış
| Hata | 503 Service Unavailable |
|---|---|
| Tür | HTTP durum kodu (5xx, sunucu hatası) |
| Gönderen | Hedef web sitesi, onun CDN'i veya çıkış sunacak çıkışı olmayan proxy |
| Tanımlandığı yer | RFC 9110, section 15.6.4 (Retry-After: section 10.2.3) |
| Tekrar denemek ister misiniz? | Evet, Retry-After veya bir geri çekilmeden sonra |
| İlk kontrol | Retry-After başlığı olup olmadığını ve gövdenin bir CDN zorlama sayfası olup olmadığını kontrol edin |
503 Service Unavailable ne anlama gelir?
RFC 9110 503'ü geçici bir durum olarak tanımlar. Sunucu aktif ama şu an bu isteği hizmete sunmaya isteksiz veya yetersizdir ve Retry-After ile ne zaman geri gelmeniz gerektiğini söyleyebilir.
Uygulamada, bu kodu üç farklı durum paylaşır: gerçekten aşırı yüklü veya bakımda bir site, otomatik kabul ettiği trafiğe zorlama sayfası gösteren bir CDN ve çok dar hedeflemede çıkışı olmayan proxy ağ geçidi. Gövde ve başlıklar onları ayırır.
Python, curl, Node.js ve tarayıcılarda a 503 nasıl görünür?
Aynı başarısızlık her araçta farklı şekilde görünür. Loglarınızda aramanız gereken mesajlar şunlardır:
- Python requests / httpx:
status_code == 503, bazenRetry-Afterile - Scrapy: varsayılan olarak tekrar denenir (503
RETRY_HTTP_CODESdedir) - curl:
HTTP/2 503, çoğunlukla CDN'i adlandıranserver:başlığı ile - Tarayıcılar: bakım sayfası veya ara kontrol sayfası
a 503 neden olur?
Öncelikle en olası sebep:
- Hedefte aşırı yük veya bakım, genellikle
Retry-Afterile. - CDN tarafından servis edilen zorlama sayfası, 503 ya da 403 durumu ile.
- Kendi yükünüz, tarayıcınız sitenin trafiğinin büyük kısmıysa.
- Çok dar hedefleme, örneğin küçük bir şehir, o anda uyacak çıkış bulunamaması.
- **Sitenin kullandığı CDN veya bulut bölgesinde yukarı akış kesintisi.
a 503 nasıl adım adım teşhis edilir?
Retry-Afterveserverbaşlığını okuyup gövde HTML başlığına bakın.- Aynı ülkeden tarayıcıda sayfayı açarak kullanıcının gördüğüne bakın.
- Tarayıcınızı birkaç dakika duraklatıp tek istek test edin: geçerse yükünüz tetikleyicidir.
- Hedeflemeyi ülke düzeyine genişletip karşılaştırın.
# 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:[email protected]: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_URLa 503 nasıl düzeltilir?
- Bekleyip
Retry-Aftergecikmesi veya üssel geri çekilme ile yeniden deneyin. - Aynı ev sahibindeki yükünüzü azaltın: paralel istek sayısını düşürün, gecikmeleri artırın, önbellekleme yapın.
- Zorlama sayfasını durdurma sinyali olarak kabul edin: CAPTCHA çözücü veya tarayıcı gizleme araçları kullanmayın; hızınızı düşürün ve erişim gerekiyorsa siteyle iletişime geçin.
- 503 ile dar şehir filtrelemesi varsa hedeflemeyi genişletin.
import random
import time
import requests
PROXY = "http://USERNAME:[email protected]: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))a 503 sonrası tekrar denenmeli mi?
503'ü denemeye devam edin ama sabırlı olun. Retry-After varsa kullanın; yoksa birkaç saniyeden bir iki dakikaya kadar üssel olarak geri çekilin. Bir ev sahibi çoğu isteğe birkaç dakikadan uzun 503 döndürüyorsa, tümüyle duraklatıp sonra devam edin. Gerçek kesintilerle zorlama sayfalarını loglarda ayrı tutun.
503 Service Unavailable CrawlRelay için nasıl geçerli?
CrawlRelay isteğinizi hedeflemenize uygun bir ev tipi IP üzerinden gönderir. Ülke düzeyinde hedefleme en geniş çıkış setini kullanır; şehir düzeyi daha dardır. Sadece şehir filtresi ile 503 oluyorsa ülke hedefiyle aynı isteği test edin, sonra başka ayarları değiştirmeyin.
Gateway: gw.crawlrelay.com, port 7777 (HTTP, HTTPS CONNECT üzerinden) ve port 7778 (SOCKS5). Kullanıcı adı formatı: USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}. İlgili: 429 Too Many Requests · 502 Bad Gateway · 504 Gateway Timeout.
503 Service Unavailable: geliştiricilerin sorduğu sorular
Neden 503'ü sadece proxy üzerinden alıyorum, evimde değil?
Ya site proxy trafiğinizi farklı değerlendirir ve genellikle zorlama sayfası gösterir, ya da hedeflemeniz o kadar dardır ki çıkış sayısı azdır. İki durumda da yanıt gövdesini karşılaştırın. Zorlama sayfası yavaşlamanız gerektiğini, kısa proxy mesajı ve dar hedefleme ise filtreyi genişletmeniz gerektiğini gösterir.
503 engellenmekle aynı mıdır?
Hayır. Gerçek 503 geçicidir ve zamanla geçer. 503 ile sunulan zorlama sayfası bir filtredir ve genellikle hızınızın veya deseninizin otomatik göründüğünü gösterir. Eşzamanlılığı azaltın, gecikme ekleyin. Site otomatik erişimi tamamen istemiyorsa bunu saygıyla karşılayın ve bir API veya lisanslı veri arayın.
Bir 503'ü kaç kez denemeliyim?
Bir URL için üssel geri çekilme ile üç-beş deneme makul bir sınırdır. Üstüne çıkmak yerine tüm ev sahibini duraklatın çünkü sorunlu site tekrar denemelerle daha hızlı düzelmez. Loglarınızda ev sahibi ve zamanı kaydedin ki sonra devam edin.
Bu referanstaki diğer proxy hataları
HTTP durum kodları
- 401 Unauthorized vs 407
- 403 Forbidden
- 407 Proxy Authentication Required
- 429 Too Many Requests
- 502 Bad Gateway
- 503 Service Unavailable
- 504 Gateway Timeout
Tarayıcı ve istemci hataları
Bağlantı ve TLS hataları
Başarısızlık durumları için dokümanlı konut proxy'ler
$0,50/GB sitesinden süresi hiç bitmeyen CrawlRelay konut proxy