Rotation auf Listenebene
ProxySale rotiert die Proxys über die Liste selbst. Der Pool verliert den ganzen Tag tote Adressen und gewinnt neue, und jedes Mal, wenn Ihre Software den Listen-Link abruft, bekommt sie den Bestand, der in diesem Moment funktioniert. Auf unserer Seite stellen Sie keine Rotationsregeln ein: Laden Sie den Link im Abstand von 8 bis 10 Minuten neu, und die Liste bleibt aktuell.
Die Zeile für jede Anfrage wählt dann Ihre Software. Die meisten Scraper und SEO-Tools greifen bei jeder Anfrage zu einem zufälligen Proxy oder springen nach einem Fehler weiter, und die Last verteilt sich auf Tausende Adressen.
Warum rotierende Proxys Scrapern helfen
Suchmaschinen, Marktplätze und Preisvergleiche zählen Anfragen pro IP. Eine Adresse, die Hunderte Anfragen pro Minute sendet, landet bei einem Captcha oder einer Sperre. Verteilen Sie dieselbe Last über eine rotierende Proxy-Liste, sendet jede Adresse nur wenige, und das Ziel sieht etwas, das gewöhnlichen Besuchern nahekommt.
Rotation versteckt außerdem tote Zeilen. Eine fehlgeschlagene Anfrage geht erneut über eine andere Adresse hinaus, und das nächste Neuladen der Liste wirft die schlechte Zeile hinaus.
Rotation in Ihrer Software einrichten
- A-Parser und ZennoPoster: den Listen-Link als Proxy-Quelle mit 10 Minuten Neuladen hinzufügen.
- Scrapy: die Liste in eine Downloader-Middleware laden, die pro Anfrage eine zufällige Zeile wählt.
- Python requests: die Liste im Speicher halten und eine zufällige Zeile im proxies-Dictionary übergeben.
- curl in bash: vor jedem Aufruf eine Zeile mit
shuf -n 1nehmen.
Lassen Sie das Neuladen bei 8 bis 10 Minuten. Anfragen im Minutentakt drosseln wir, und so schnell ändert sich der Pool ohnehin nicht.
Rotationsstrategien
- Eine zufällige Zeile pro Anfrage: das einfachste Schema mit der gleichmäßigsten Last.
- Eine Zeile für eine kurze Serie: nützlich, wenn eine Seite einige zusammenhängende Anfragen erwartet, etwa eine Suchseite und die nächste Ergebnisseite.
- Wechsel bei Fehler: eine Zeile behalten, solange sie antwortet, und nach Captcha, Timeout oder 403 verwerfen.
- Abkühlphase: nach einer Sperre die Adresse 10 bis 15 Minuten aus der Rotation nehmen.
Die meisten Scraper verbinden die erste und die dritte Variante: eine zufällige Zeile pro Anfrage und ein sofortiger Wechsel nach einem Fehler. Beobachten Sie den Anteil an Captchas und Fehlschlägen. Steigt er, fügen Sie Adressen hinzu oder werden langsamer.
Wie viele Adressen Sie brauchen
Zählen Sie die Anfragen pro Minute an Ihr schwierigstes Ziel und teilen Sie sie durch das, was eine Adresse ohne Ärger senden kann. Verträgt eine Seite fünf Anfragen pro Minute von einer IP und Sie brauchen 5.000, planen Sie mindestens 1.000 lebende Adressen ein, plus Reserve für das nächtliche Tief. Größere Aufträge behandelt die Seite Proxys in großen Mengen.
Wählen Sie den Pool nach dem Ziel: World MIX für globale Seiten, Europa-Proxys für EU-Shops und Suche, GUS-Proxys für Yandex und regionale Marktplätze, China-Proxys für Baidu.
Aufgaben, die eine feste Adresse brauchen
Manche Arbeit braucht lange eine Adresse: Anmeldung in Konten, ein gefüllter Warenkorb, Profile in Antidetect-Browsern. Eine rotierende Paketliste passt hier schlecht, weil die Adresse den Pool verlassen kann. Nehmen Sie für solche Arbeit Residential-Proxys aus dem Pool Max: Jede Zeile hat eine eigene Sitzung mit einer Laufzeit von drei Minuten bis einen Tag, solange das Heimgerät online ist. Die Seite Proxys für Antidetect zeigt die Einrichtung der Profile.
Für alles, was öffentliche Seiten liest, passt die Rotation besser und kostet weniger pro Anfrage.
Eine Listendatei, die sich alle 10 Minuten erneuert
Manche Tools lesen Proxys nur aus einer Datei. Halten Sie diese Datei mit einem kleinen Skript frisch, das die Liste alle 10 Minuten herunterlädt. Jedes Skript unten schreibt zuerst in eine temporäre Datei und ersetzt die Hauptdatei erst nach vollständigem Download, Ihre Software liest also nie eine halb geschriebene oder leere Liste. Setzen Sie den Listen-Link aus dem Kundenbereich an die Stelle von YOUR_LIST_LINK.
Linux: ein Shell-Skript und cron
Speichern Sie das Skript als /opt/proxies/update-proxies.sh, machen Sie es mit chmod +x /opt/proxies/update-proxies.sh ausführbar und starten Sie es einmal von Hand. Es gibt aus, wie viele Proxys es gespeichert hat, oder einen Fehler, wenn der Link nicht antwortet.
#!/bin/sh
LIST_URL="YOUR_LIST_LINK"
DEST="/opt/proxies/proxies.txt"
TMP="$DEST.tmp"
mkdir -p "$(dirname "$DEST")"
if curl -fsS --max-time 60 -o "$TMP" "$LIST_URL" && [ -s "$TMP" ]; then
mv "$TMP" "$DEST"
echo "$(date '+%F %T') saved $(wc -l < "$DEST") proxies"
else
rm -f "$TMP"
echo "$(date '+%F %T') download failed, kept the old list" >&2
exit 1
fiRufen Sie den Zeitplan mit crontab -e auf und fügen Sie die Zeile unten hinzu. Cron startet das Skript alle 10 Minuten und hängt seine Meldungen an ein Log an. Führen Sie es als root aus oder ändern Sie beide Pfade auf einen Ordner in Ihrem Home-Verzeichnis.
*/10 * * * * /opt/proxies/update-proxies.sh >> /var/log/update-proxies.log 2>&1Windows: PowerShell und Aufgabenplanung
Speichern Sie das Skript als C:\proxies\update-proxies.ps1 und starten Sie es einmal in PowerShell, um den Link zu prüfen.
$ListUrl = "YOUR_LIST_LINK"
$Dest = "C:\proxies\proxies.txt"
$Tmp = "$Dest.tmp"
New-Item -ItemType Directory -Force -Path (Split-Path $Dest) | Out-Null
try {
Invoke-WebRequest -Uri $ListUrl -OutFile $Tmp -UseBasicParsing -TimeoutSec 60
if ((Get-Item $Tmp).Length -eq 0) { throw "empty list" }
Move-Item -Force $Tmp $Dest
$count = (Get-Content $Dest | Measure-Object -Line).Lines
Write-Output "$(Get-Date -Format s) saved $count proxies"
} catch {
Remove-Item $Tmp -ErrorAction SilentlyContinue
Write-Output "$(Get-Date -Format s) download failed, kept the old list: $($_.Exception.Message)"
exit 1
}Registrieren Sie eine Aufgabe, die das Skript alle 10 Minuten startet: Fügen Sie den Befehl in die Eingabeaufforderung oder in PowerShell ein. Die Aufgabe übersteht Neustarts und erscheint in der Aufgabenplanung als UpdateProxies. Sie läuft, solange Sie angemeldet sind; um sie ohne Sitzung laufen zu lassen, öffnen Sie die Eingabeaufforderung als Administrator und ergänzen den Befehl um /RU SYSTEM.
schtasks /Create /TN "UpdateProxies" /SC MINUTE /MO 10 /F /TR "powershell.exe -NoProfile -ExecutionPolicy Bypass -File C:\proxies\update-proxies.ps1"Lieber mit der Maus? Öffnen Sie die Aufgabenplanung, wählen Sie Einfache Aufgabe erstellen, nehmen Sie einen täglichen Trigger, öffnen Sie dann die Eigenschaften der Aufgabe und stellen Sie Wiederholen alle 10 Minuten für die Dauer Unbegrenzt ein. Die Aktion startet powershell.exe mit den Argumenten -NoProfile -ExecutionPolicy Bypass -File C:\proxies\update-proxies.ps1.
Jedes System: Python
Die Python-Variante läuft in einer Schleife und braucht keinen Planer. Starten Sie sie im Terminal, in screen oder tmux oder als Dienst. Sie braucht Python 3 und keine zusätzlichen Pakete.
import time
import urllib.request
from pathlib import Path
LIST_URL = "YOUR_LIST_LINK"
DEST = Path("proxies.txt")
EVERY = 600
while True:
try:
data = urllib.request.urlopen(LIST_URL, timeout=60).read()
if not data.strip():
raise ValueError("empty list")
tmp = DEST.with_name(DEST.name + ".tmp")
tmp.write_bytes(data)
tmp.replace(DEST)
print(time.strftime("%Y-%m-%dT%H:%M:%S"), "saved", len(data.split()), "proxies", flush=True)
except Exception as error:
print(time.strftime("%Y-%m-%dT%H:%M:%S"), "download failed, kept the old list:", error, flush=True)
time.sleep(EVERY)Verweisen Sie Ihre Software auf die gespeicherte Datei, dann liest sie immer eine Liste, die höchstens 10 Minuten alt ist. Bleiben Sie beim Intervall von 10 Minuten: Häufigere Anfragen drosseln wir.
Protokolle, Preise und Test
Jede rotierende Paketzeile arbeitet über HTTP, HTTPS, SOCKS4 und SOCKS5 über denselben Port, siehe SOCKS5-Proxys und HTTP-Proxys. Größen und Laufzeiten stehen in der Preisliste, und eine kostenlose Stunde mit einem beliebigen Paket gibt es auf der Kontaktseite.
