So verwenden Sie ProxyScrape Residential Proxies für SEO-Rank-Tracking
Erstellen Sie einen kleinen Python-Rank-Tracker, der SERPs über den rotierenden Residential-Pool von ProxyScrape abruft, mit Wiederholungsversuchen, Drosselung, Hinweisen zum Geo-Targeting und Protokollierung der Exit-IP pro Anfrage.
Überblick
Suchmaschinen liefern unterschiedliche Ergebnisse, je nachdem, welche IP anfragt. SEO-Rank-Tracking benötigt daher Anfragen, die wie normale Nutzer vom richtigen Standort aussehen, was ein rotierender Residential-Pool bietet. Der Residential-Pool von ProxyScrape (97 Mio.+ IPs) gibt pro Anfrage eine neue Exit-IP aus oder hält eine Sticky-Session, und seine Datacenter-Proxies sind eine günstigere Option für Endpunkte mit hohem Volumen, die Hosting-Bereiche nicht blockieren.
Dieses Tutorial erstellt einen minimalen Python-Rank-Tracker, der SERPs über ProxyScrape liest. Scrapen Sie nur Seiten, auf die Sie zugreifen dürfen, und respektieren Sie die Nutzungsbedingungen und robots-Anweisungen der Zielseite.
Schritte
-
Sammeln Sie Zugangsdaten und Ports. Notieren Sie im ProxyScrape-Dashboard den Residential-Gateway-Host, seine HTTP- und SOCKS5-Ports sowie Ihren Benutzernamen/Ihr Passwort. Rotierende Endpunkte vergeben normalerweise eine neue IP pro Anfrage; wenn Ihr Tarif eine Sticky-Session-Option bietet, zeigt das Dashboard die Syntax dafür an.
-
Installieren Sie die Abhängigkeiten.
python -m venv .venv && source .venv/bin/activate pip install requests beautifulsoup4 # PySocks nur hinzufügen, wenn Sie den SOCKS5-Port verwenden möchten: pip install "requests[socks]" -
Speichern Sie Zugangsdaten als Umgebungsvariablen, damit sie niemals in Ihre Versionskontrolle gelangen:
export PS_HOST="your-host" export PS_PORT="your-http-port" export PS_USER="your-username" export PS_PASS="your-password" -
Erstellen Sie ein Proxy-Wörterbuch. Für den HTTP-Port:
import os proxy_url = f"http://{os.environ['PS_USER']}:{os.environ['PS_PASS']}@{os.environ['PS_HOST']}:{os.environ['PS_PORT']}" proxies = {"http": proxy_url, "https": proxy_url}Verwenden Sie für den SOCKS5-Port das Schema
socks5h://, damit DNS beim Proxy aufgelöst wird:proxy_url = f"socks5h://{os.environ['PS_USER']}:{os.environ['PS_PASS']}@{os.environ['PS_HOST']}:{os.environ['PS_SOCKS_PORT']}" -
Fügen Sie Geo-Targeting hinzu, wenn Ihr Tarif dies unterstützt. Bei einigen Residential-Tarifen können Sie ein Land oder eine Stadt festlegen, indem Sie einen Code an den Benutzernamen anhängen. Die genaue Syntax unterscheidet sich je nach Tarif, verwenden Sie daher das in Ihrem ProxyScrape-Dashboard angezeigte Format und raten Sie nicht.
-
Rufen Sie eine SERP mit Wiederholungsversuchen ab. Rotieren Sie die IP, warten Sie zwischen den Anfragen und machen Sie bei Fehlern Backoff:
import random, time, requests HEADERS = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0 Safari/537.36", "Accept-Language": "en-US,en;q=0.9", } def fetch_serp(keyword, num=20, attempts=3): for attempt in range(attempts): try: r = requests.get( "https://www.google.com/search", params={"q": keyword, "num": num, "hl": "en"}, headers=HEADERS, proxies=proxies, timeout=20, ) if r.status_code == 200: return r.text except requests.RequestException: pass time.sleep(2 ** attempt + random.random()) return None -
Drosseln und rotieren Sie bewusst. Halten Sie die Parallelität niedrig (2–5 Worker), fügen Sie eine zufällige Verzögerung von 2–10 Sekunden zwischen Abfragen hinzu und verwenden Sie eine neue Anfrage pro Keyword, damit jede SERP von einer anderen IP kommt. HTTP-429- oder -503-Antworten bedeuten, dass Sie zu schnell sind – werden Sie langsamer, anstatt sofort erneut zu versuchen.
-
Parsen und speichern Sie das Ergebnis.
from bs4 import BeautifulSoup html = fetch_serp("proxy comparison") soup = BeautifulSoup(html, "html.parser") for i, a in enumerate(soup.select("a[href^=http]"), start=1): print(i, a.get_text(" ", strip=True)[:80], a["href"])Das Markup der Ergebnisse ändert sich im Laufe der Zeit, überprüfen Sie daher Ihre Selektoren anhand des Live-DOM, bevor Sie sich darauf verlassen. Schreiben Sie die Zeilen jedes Durchlaufs (Keyword, Position, URL, Zeitstempel, Exit-IP) in eine CSV-Datei oder Datenbank.
-
Protokollieren Sie die Exit-IP für jede Anfrage, damit Sie eine echte Ranking-Änderung von einer Standortänderung unterscheiden können:
curl -x "http://USER:PASS@HOST:PORT" https://ipinfo.io/json