Skip to content
Artikel / 4 Min. Lesezeit

ProxyScrape Python und Web: Wie man Proxys abruft, validiert und rotiert

ProxyScrape bietet herunterladbare Proxy-Listen und eine API, aber kostenlose Listen sind keine Produktionsinfrastruktur. Hier ist ein sicherer Python-Workflow zum Abrufen, Validieren und Rotieren von Proxys sowie was im Web-Dashboard zu prüfen ist.

ProxyScrape wird oft zusammen mit Python gesucht, weil Nutzer eine Proxy-Liste abrufen, testen und in einem Skript rotieren möchten. Das Web-Dashboard und die API überschneiden sich, erfüllen aber unterschiedliche Zwecke. Dieser Leitfaden konzentriert sich auf einen sicheren Workflow: abrufen, validieren, rotieren und wissen, wann kostenlose Proxys das falsche Werkzeug sind.

Was du von ProxyScrape bekommst: Weblisten, API und bezahlte Pools

ProxyScrape bietet Downloads von Proxy-Listen und API-Zugriff sowie kommerzielle Proxy-Dienste. Genaue Endpunkte, Protokolle, Formate, Limits und verfügbare Standorte können sich ändern. Bestätige sie daher immer in deinem ProxyScrape-Dashboard oder in der aktuellen Dokumentation. Hardcode keinen Endpunkt, den du in einem alten Tutorial gefunden hast, ohne ihn zu überprüfen.

Kostenlose Proxy-Listen eignen sich am besten zum Lernen und Testen. Sie sind normalerweise ungeeignet für Produktions-Scraping, Logins oder sensible Daten, da Verfügbarkeit, Geschwindigkeit und Vertrauenswürdigkeit stark variieren.

Eine Proxy-Liste in Python abrufen

Speichere die API-URL zunächst in einer Umgebungsvariable, anstatt sie in deinen Code einzuchecken.

import os
import requests

API_URL = os.environ['PROXYSCRAPE_API_URL']  # copy from your ProxyScrape dashboard/docs

response = requests.get(API_URL, timeout=15)
response.raise_for_status()

lines = [line.strip() for line in response.text.splitlines() if line.strip()]
print(f'Fetched {len(lines)} proxies')
print(lines[:5])

Wenn die API JSON zurückgibt, untersuche die Antwortstruktur, bevor du Felder auswählst. Feldnamen können sich ändern.

data = response.json()
# Adjust this to match the current API response
proxies = [item['proxy'] for item in data.get('proxies', [])]

Proxys validieren, bevor sie deine Zeit verschwenden

Eine Proxy-Liste ist erst nützlich, wenn du sie testest. Validiere gegen einen harmlosen IP-Echo-Endpunkt und notiere, welche Proxys funktionieren.

import concurrent.futures
import requests

TEST_URL = 'https://api.ipify.org?format=json'

def check(proxy):
    # Use http:// for HTTP proxies.
    # For SOCKS5, install requests[socks] and use socks5h://host:port.
    proxy_url = f'http://{proxy}'
    proxies = {'http': proxy_url, 'https': proxy_url}
    try:
        response = requests.get(TEST_URL, proxies=proxies, timeout=8)
        response.raise_for_status()
        return proxy, response.json()
    except Exception:
        return proxy, None

working = []
with concurrent.futures.ThreadPoolExecutor(max_workers=50) as pool:
    for proxy, result in pool.map(check, lines[:200]):
        if result:
            working.append(proxy)
            print('OK', proxy, result)

print(f'Working: {len(working)}')

Für SOCKS5-Proxys verwende socks5h://host:port, wenn du remote DNS möchtest. Für authentifizierte Proxys ist das Format normalerweise http://user:pass@host:port oder socks5h://user:pass@host:port, aber bestätige das Format des Anbieters.

Proxys in einem Python-Skript rotieren

Sobald du einen Pool funktionierender Proxys hast, rotiere sie mit einer vorhersehbaren Strategie. Rotation pro Anfrage ist einfach, kann aber Sitzungen unterbrechen und Login-Prüfungen auslösen.

import itertools
import requests
from requests.adapters import HTTPAdapter

working_proxies = working  # from the validator above
proxy_cycle = itertools.cycle(working_proxies)

session = requests.Session()
session.mount('https://', HTTPAdapter(max_retries=2))

urls = [
    'https://example.com/page/1',
    'https://example.com/page/2',
    'https://example.com/page/3',
]

for url in urls:
    proxy = next(proxy_cycle)
    proxies = {
        'http': f'http://{proxy}',
        'https': f'http://{proxy}',
    }
    try:
        response = session.get(url, proxies=proxies, timeout=12)
        print(response.status_code, proxy, url)
    except requests.RequestException as exc:
        print('FAILED', proxy, exc)

Wenn die Zielseite eine stabile Sitzung benötigt, verwende Sticky Sessions, anstatt bei jeder Anfrage zu rotieren. Viele Anbieter implementieren dies über eine Sitzungs-ID im Benutzernamen. Prüfe die Dokumentation deines Anbieters für das genaue Format; rate nicht.

Das ProxyScrape Web-Dashboard verwenden

Die Web-Oberfläche ist nützlich für schnelle Überprüfungen:

  • Lade eine Liste im benötigten Format herunter.
  • Filtere nach Protokoll, z. B. HTTP oder SOCKS5, falls verfügbar.
  • Filtere nach Land oder Anonymitätsstufe, falls verfügbar.
  • Kopiere den API-Endpunkt für die Automatisierung.
  • Prüfe, ob die Liste kostenlos ist oder an einen kostenpflichtigen Plan gebunden ist.
  • Bestätige, dass die Zielseite die Art des Zugriffs erlaubt, die du planst.

Wenn eine heruntergeladene Liste innerhalb von Minuten veraltet ist, ist das für kostenlose Proxys normal. Behandle sie als Wegwerfartikel.

Ethik, Sicherheit und rechtliche Prüfungen

  • Respektiere die Nutzungsbedingungen der Zielseite, robots.txt und Rate Limits.
  • Sende keine Anmeldedaten, personenbezogenen Daten oder Zahlungsdaten über nicht vertrauenswürdige kostenlose Proxys.
  • Verwende TLS und überprüfe Zertifikate.
  • Wenn du personenbezogene Daten verarbeitest, prüfe DSGVO, CCPA und andere anwendbare Vorschriften.
  • Verwende kostenpflichtige Residential- oder Datacenter-Proxys, wenn du Zuverlässigkeit und Support benötigst.

Fazit

ProxyScrape kann sowohl über das Web-Dashboard als auch über Python verwendet werden, aber der Workflow ist wichtiger als die Quelle. Rufe die aktuelle Liste ab, validiere sie, rotiere mit einem Ziel und behalte kostenlose Proxys dort, wo sie hingehören: beim Testen und Lernen.