Proxy-Rotator
Verwenden Sie diesen Skill, wenn ein Scraper Anfragen auf mehrere Proxys verteilen und aufhören soll, tote Proxys zu belasten. Der Rotator gibt den nächsten gesunden Proxy aus, zählt Fehler und sperrt einen Proxy für eine Abkühlungszeit, nachdem er zu oft fehlgeschlagen ist – und gibt ihm dann eine zweite Chance. Sie bringen die Proxy-Liste mit; es wird nichts festgeschrieben.
Wann aufrufen
- Benutzer sagt: "Rotiere die Proxys", "Verteile die Anfragen auf verschiedene Proxys", "Hör auf, IP-gesperrt zu werden", "Wiederhole über einen anderen Proxy".
- Der Code im Gespräch führt viele ausgehende Anfragen aus und muss sie auf einen Proxy-Pool verteilen.
Wann NICHT aufrufen
- Eine einzelne Verbindung reicht aus, oder das Ziel erlaubt explizit Ihr Volumen – die Rotation von Proxys fügt unnötige Komplexität hinzu.
- Die Absicht ist, eine explizite Sperre zu umgehen oder einen Dienst zu missbrauchen; halten Sie die Nutzung innerhalb der Bedingungen des Ziels.
Konkretes Beispiel
Benutzereingabe:
Ich habe 5 Proxys. Rotiere sie im Round-Robin und überspringe die, die anfangen zu fehlschlagen.
Ausgabe:
import requests
from rotator import ProxyRotator
rot = ProxyRotator.from_env() # PROXY_POOL="http://h1:8080,socks5://h2:1080,..."
for url in urls:
p = rot.get() # nächster gesunder Proxy
try:
r = requests.get(url, proxies=p.as_dict(), timeout=15)
rot.report(p, ok=r.ok) # Ergebnis zurückmelden, damit sich der Pool selbst heilt
except Exception:
rot.report(p, ok=False) # zu viele Fehler -> für die Abkühlung gesperrt
Anzuwendendes Muster
- Laden Sie Proxys aus der Umgebung oder einer gitignorierten Datei – niemals echte Proxy-URLs oder Zugangsdaten festhalten.
- Rufen Sie immer
report(proxy, ok=...)nach jeder Anfrage auf, damit fehlschlagende Proxys automatisch gesperrt werden. - Passen Sie
max_failsundcooldownan das Ziel an; eine kurze Abkühlung erholt flaky Proxys, eine lange entfernt schlechte. - Führen Sie
health_checkvor einer großen Charge aus, um tote Proxys vorab zu sperren. - Behandeln Sie den Fehler "keine gesunden Proxys" – warten Sie und wiederholen Sie es, anstatt den Lauf abzubrechen.
Referenz: assets/rotator.py.
Quelle
Destilliert aus dem produktiven Einsatz in den Automatisierungsprojekten des Autors. v1.0.0. Siehe auch: [[playwright-login-session]], [[pipeline-orchestrator]], [[cron-dispatch]].
→ Erstellen Sie den vollständig lauffähigen Bot mit Trawlkit.