Tanpa KYC — tanpa ID, tanpa selfie, tanpa dokumen. Bayar dengan crypto: BTC, USDT, USDC, ETH, SOL, LTC
Bahasa: Bahasa Indonesia
Mulai sekarang

Referensi kesalahan proxy · Kode status HTTP

503 Service Unavailable saat scraping: arti dan cara mengatasinya

Kode status HTTP (5xx, kesalahan server): pesan tepat di tiap alat, penyebab yang mungkin secara urut, dan perbaikan yang berhasil.

Terakhir diperbarui: · 4 baca dalam menit

Jawaban cepat

Apa arti 503 Service Unavailable dengan proxy?

503 Service Unavailable berarti server tidak bisa menangani permintaan saat ini karena overload, pemeliharaan, atau aturan protektif. Melalui proxy residential CrawlRelay, baca header Retry-After dan isi respons: 503 karena pemeliharaan atau overload akan hilang dengan waktu, sedangkan halaman tantangan berarti situs memfilter trafik otomatis dan Anda harus memperlambat.

503 Service Unavailable sekilas

Kesalahan503 Service Unavailable
TipeKode status HTTP (5xx, kesalahan server)
Dikirim olehSitus target, CDN-nya, atau proxy saat tidak ada exit yang tersedia
Didefinisikan dalamRFC 9110, section 15.6.4 (Retry-After: section 10.2.3)
Mencoba lagi?Ya, setelah Retry-After atau jeda
Periksa pertamaPeriksa header Retry-After dan apakah isi adalah halaman tantangan CDN

Apa arti 503 Service Unavailable?

RFC 9110 mendefinisikan 503 sebagai kondisi sementara. Server aktif namun tidak mau atau tidak mampu melayani permintaan sekarang, dan bisa memberitahu kapan kembali lewat Retry-After.

Dalam praktik, tiga situasi berbeda berbagi kode ini: situs yang benar-benar overload atau dalam pemeliharaan, CDN yang menunjukkan halaman tantangan ke trafik yang dianggap otomatis, dan gateway proxy tanpa exit yang cocok untuk target sangat sempit. Isi dan header membedakan mereka.

Seperti apa a 503 dalam Python, curl, Node.js, dan browser?

Kegagalan yang sama dicetak berbeda di setiap alat. Ini adalah pesan yang perlu dicari di log Anda:

  • Python requests / httpx: status_code == 503, kadang dengan Retry-After
  • Scrapy: mencoba ulang secara default (503 ada di RETRY_HTTP_CODES)
  • curl: HTTP/2 503, sering dengan header server: yang menyebut CDN
  • Browser: halaman pemeliharaan atau halaman pemeriksaan interstisial

Apa penyebab a 503?

Kemungkinan besar pertama:

  • Overload atau pemeliharaan di sisi target, sering dengan Retry-After.
  • Halaman tantangan yang disajikan CDN untuk klien yang ingin diperiksa, dengan status 503 atau 403.
  • Beban Anda sendiri, saat crawler Anda menjadi bagian besar trafik situs.
  • Target terlalu sempit, seperti kota kecil, saat tidak ada exit yang cocok saat itu.
  • Gangguan hulu di CDN atau wilayah cloud yang dipakai situs.

Bagaimana cara mendiagnosis a 503 langkah demi langkah?

  1. Baca Retry-After dan header server, lalu lihat judul HTML di isi.
  2. Buka halaman di browser dari negara yang sama untuk melihat tampilan pengguna.
  3. Jeda crawler selama beberapa menit dan uji satu permintaan: jika berhasil, beban Anda penyebabnya.
  4. Perluas target ke tingkat negara dan bandingkan.
Uji URL yang gagal dengan curl (port HTTP, verbose)
# 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_URL

Bagaimana cara memperbaiki a 503?

  • Tunggu dan coba lagi dengan jeda Retry-After atau backoff eksponensial.
  • Kurangi beban pada host itu: permintaan paralel lebih sedikit, jeda lebih lama, caching.
  • Anggap halaman tantangan sebagai sinyal berhenti untuk kecepatan itu. Jangan gunakan alat pemecah CAPTCHA atau penyamaran browser untuk mengatasinya; kurangi tingkatnya dan hubungi situs jika perlu akses.
  • Perluas target bila 503 muncul dengan filter kota yang sempit.
Python: coba ulang dengan Retry-After, backoff eksponensial, dan jitter
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))

Haruskah saya mencoba lagi setelah a 503?

Coba ulang 503 dengan sabar. Gunakan Retry-After jika ada; jika tidak, lakukan backoff eksponensial dari beberapa detik sampai satu atau dua menit. Jika host mengembalikan 503 ke sebagian besar permintaan lebih dari beberapa menit, jeda sepenuhnya dan coba lagi nanti. Catat halaman tantangan berbeda dari gangguan nyata dalam log Anda.

Bagaimana 503 Service Unavailable berlaku untuk CrawlRelay?

CrawlRelay mengirim permintaan Anda melalui IP residential yang dipilih sesuai target Anda. Target tingkat negara memakai exit terbanyak; target kota lebih sempit. Jika 503 hanya muncul dengan filter kota, coba permintaan yang sama hanya dengan negara sebelum mengubah apapun.

Gateway: gw.crawlrelay.com, port 7777 (HTTP, HTTPS melalui CONNECT) dan port 7778 (SOCKS5). Format username: USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}. Terkait: 429 Too Many Requests · 502 Bad Gateway · 504 Gateway Timeout.

503 Service Unavailable: pertanyaan yang sering ditanyakan pengembang

Mengapa saya hanya mendapat 503 lewat proxy tapi tidak di rumah?

Situs memperlakukan trafik proxy Anda berbeda, sering menampilkan halaman tantangan, atau target Anda terlalu sempit sehingga exit jarang. Bandingkan isi respons di kedua kasus. Halaman tantangan berarti kurangi kecepatan; pesan proxy singkat dengan target sempit berarti perlu perluas filter lokasi.

Apakah 503 sama dengan diblokir?

Tidak. 503 asli bersifat sementara dan akan hilang dengan waktu. Halaman tantangan dengan 503 adalah filter, biasanya berarti pola atau kecepatan Anda terlihat otomatis. Kurangi koneksi paralel dan tambahkan jeda. Jika situs sama sekali tidak mengizinkan akses otomatis, hormati itu dan cari API atau data berlisensi.

Berapa kali saya harus coba ulang 503?

Tiga sampai lima kali dengan backoff eksponensial adalah batas wajar untuk satu URL. Setelah itu, jeda seluruh host daripada coba ulang URL satu per satu, karena situs bermasalah tidak akan pulih lebih cepat dengan coba ulang. Catat host dan waktu agar bisa dilanjutkan nanti.

Kesalahan proxy lain dalam referensi ini

Kode status HTTP

Kesalahan browser dan klien

Error koneksi dan TLS

Proxy residensial dengan dokumentasi yang membahas kasus kegagalan

Proxy residensial CrawlRelay dari US$0,50/GB, lalu lintas yang tidak pernah kedaluwarsa.

Dari US$0,50/GB · tanpa KYC

Mulai sekarang