Fehlerbehebung · 2 Min Lesezeit

Wie man 429 Zu viele Anfragen beim Scraping behebt

Ein 429 ist eine Ratenbegrenzung, kein Verbot — der Server bittet Sie, langsamer zu machen. Die dauerhafte Lösung kombiniert Backoff, das Einhalten von Retry-After und das Verteilen der Last auf einen Pool von IPs. So geht's, mit funktionierendem Python.

429 ist ein Geschwindigkeitslimit, kein Wall

HTTP 429 Zu viele Anfragen bedeutet, dass Sie in einem bestimmten Zeitraum zu viele Anfragen gesendet haben und der Server Sie drosselt. Es ist absichtlich vorübergehend – im Gegensatz zu einer harten Sperre wird eine 429 normalerweise aufgehoben, sobald Sie langsamer werden. Viele Server enthalten einen Retry-After-Header, der Ihnen genau sagt, wie viele Sekunden Sie warten sollen; ihn zu beachten ist die effektivste Lösung, da es Sie mit dem eigenen Limit des Servers in Einklang bringt, anstatt zu raten.

There are two levers. The first is rate: send fewer requests per second per IP, add delays, cap concurrency, and back off exponentially when a 429 appears. The second is distribution: spread requests across multiple IPs so each stays under the per-IP limit. Rate control is where you should start — a proxy pool multiplies your throughput but does not excuse hammering a site. s4m provides authenticated datacenter proxies (SOCKS5 1080, HTTP 3128, USER:PASS) to spread load, and this pairs directly with the proxy rotation guide and scraping with requests.

Respektieren Sie Retry-After, ziehen Sie sich zurück und rotieren Sie dann

Eine Abrufschleife, die Retry-After respektiert, exponentiell mit Jitter zurückgeht und sich über einen Proxy-Pool verteilt. Ersetzen Sie USER:PASS.

python
import random, time
import requests

USER, PASS, HOST = "USER", "PASS", "proxy.s4m.online"
POOL = [
    f"socks5h://{USER}:{PASS}@{HOST}:1080",
    f"http://{USER}:{PASS}@{HOST}:3128",
]

def polite_get(url, max_tries=6):
    for attempt in range(1, max_tries + 1):
        proxy = random.choice(POOL)
        r = requests.get(url, proxies={"http": proxy, "https": proxy},
                         timeout=(5, 20))
        if r.status_code != 429:
            r.raise_for_status()
            return r

        # 429: prefer the server's Retry-After, else exponential backoff
        retry_after = r.headers.get("Retry-After")
        if retry_after and retry_after.isdigit():
            wait = int(retry_after)
        else:
            wait = min(2 ** attempt, 60) + random.random()  # cap + jitter

        print(f"[{attempt}/{max_tries}] 429; waiting {wait:.1f}s")
        time.sleep(wait)

    raise SystemExit(f"still rate-limited after {max_tries} tries")

# Global throttle: cap how fast you fire, independent of retries.
MIN_INTERVAL = 0.5  # seconds between requests per worker
_last = 0.0
def throttled_get(url):
    global _last
    delta = time.time() - _last
    if delta < MIN_INTERVAL:
        time.sleep(MIN_INTERVAL - delta)
    _last = time.time()
    return polite_get(url)

print(throttled_get("https://httpbin.org/status/200").status_code)

Die Anordnung zur Behebung eines 429

Zuerst die günstigsten, respektvollsten Lösungen.

Retry-After beachten

Wenn die 429-Antwort einen Retry-After-Header enthält, warten Sie genau so lange, bevor Sie es erneut versuchen. Es ist der Server, der Ihnen sein Limit mitteilt – wenn Sie es befolgen, werden die meisten 429s sofort behoben.

Fügen Sie exponentielles Backoff mit Jitter hinzu

Wenn es kein Retry-After gibt, warten Sie 2, 4, 8… Sekunden (begrenzt) plus ein kleines zufälliges Jitter zwischen den Wiederholungen, damit Sie aufhören zu hämmern und synchronisierte Wiederholungen vermeiden.

Drosseln Sie Ihre Anforderungsrate

Begrenzen Sie die Anfragen pro Sekunde und die gleichzeitige Nutzung, damit Sie überhaupt unter dem Limit bleiben. Ein stetiger, langsamer Crawl endet zuverlässiger als ein plötzlicher Anstieg, der ständig gedrosselt wird.

Lasten auf IPs verteilen

Sobald dein Verhalten pro Anfrage höflich ist, rotiere durch einen Proxy-Pool, sodass jede IP unter dem pro-IP-Limit bleibt. Dies vervielfacht den sicheren Durchsatz, ohne die Rate auf einer einzelnen Adresse zu erhöhen.

Warum Rotation allein nicht die Antwort ist

Es ist verlockend, Proxys als Möglichkeit zu betrachten, um Ratenlimits zu ignorieren — einfach mehr IPs hinzufügen und weiter feuern. Das schlägt fehl. Eine Seite, die 429 zurückgibt, beobachtet die Anfrage-Muster, und eine Flut von wechselnden Adressen, die zur gleichen Zeit die gleichen Endpunkte ansteuern, ist selbst eine erkennbare Signatur, die zu harten Sperren eskaliert. Rotation multipliziert höflichen Durchsatz; es ersetzt nicht die Höflichkeit. Kombinieren Sie immer einen Proxy-Pool mit Backoff, Retry-After, realistischem Tempo und sinnvoller Parallelität.

Ehrlich gesagt, einige Limits sind dazu gedacht, respektiert zu werden — überprüfen Sie, ob eine offizielle API oder ein dokumentiertes Limit existiert, bevor Sie um einen 429 herum skalieren, und lesen Sie die Nutzungsbedingungen jeder Seite. Wenn Sie Verteilung benötigen, verteilen die authentifizierten Datacenter-Proxys von s4m die Last und sind gemessen, sodass die Erweiterung des Pools kostengünstig ist; für die Mechanik siehe den Rotationsleitfaden. Denken Sie daran, dass Datacenter-IPs immer noch im großen Stil markiert werden können, und Rotation tut nichts gegen Fingerabdrücke. Prototypisieren Sie kostengünstig mit der kostenlosen Proxyliste und validieren Sie Ausgänge mit den Tools.

FAQ

Fragen, beantwortet

Ist eine 429 eine permanente Sperre?

Nein. HTTP 429 Zu viele Anfragen ist ein vorübergehendes Ratenlimit — es wird normalerweise aufgehoben, sobald Sie langsamer werden. Beachten Sie jeden Retry-After-Header, fügen Sie Backoff hinzu und reduzieren Sie Ihre Anfragerate, und der Zugriff wird normalerweise wiederhergestellt.

Was ist die effektivste Lösung für einen 429?

Den Retry-After-Header respektieren, wenn der Server einen sendet. Er sagt Ihnen genau, wie lange Sie warten sollen, damit Sie sich wieder mit dem Limit des Servers abstimmen, anstatt zu raten und erneut gedrosselt zu werden.

Werden rotierende Proxys 429-Fehler stoppen?

Es hilft, indem jede IP unter dem pro-IP-Limit bleibt, aber nur in Verbindung mit Backoff und Drosselung. Rotation ohne höfliches Tempo erzeugt eine erkennbare Flut, die zu härteren Sperren eskaliert, also kombinieren Sie beides.

Sind s4m-Proxys ausreichend, um jede Ratenbegrenzung zu umgehen?

Kein ehrliches Tool kann das versprechen. s4m Datacenter-Proxys verteilen die Last auf IPs, aber du benötigst trotzdem Backoff und Drosselung, Datacenter-Bereiche können markiert werden, und einige Grenzen sollten einfach über eine offizielle API respektiert werden.

Lasten ehrlich verteilen

Kombinieren Sie Backoff und Drosselung mit authentifizierten Rechenzentrums-Proxys auf proxy.s4m.online, um jede IP unter dem Limit zu halten. Abrechnung nach Verbrauch, dedizierte IP optional.

Menschen fanden diese Seite durch die Suche nach

  • wie man 429 zu viele anfragen beim scraping behebt
  • residential proxys
  • frisch kostenlose Proxy-Liste
  • kostenlose Proxy-Liste
  • wie openvpn funktioniert
  • wie man HTTP-Proxy überprüft
  • wie man wireguard konfiguriert
  • Proxy für Scraping für Unternehmen
  • socks5 Proxy Schritt für Schritt
  • Tinyproxy vs 3proxy vs Squid
  • ist Proxy-Authentifizierung sicher
  • IP-Adresse Einstellungen
  • UDP über SOCKS5
  • ist openvpn sicher
  • openvpn
  • umgehung von DPI
  • HTTP-Proxy
  • IP-Adresse

Echte Suchphrasen, auf die diese Seite antwortet — die verlinkten öffnen die Seite, die sie ausführlich behandelt.