Skip to content
Intermediate / 3 min read

So verwenden Sie ProxyScrape Residential-Proxies für Web Scraping in Python

Eine Schritt-für-Schritt-Anleitung zur Integration von ProxyScrapes Residential- und Datacenter-Proxies in Ihre Python-Web-Scraping-Skripte unter Verwendung der Protokolle HTTP und SOCKS5.

SOCKS5 HTTP(S) Web Scraping

Überblick

ProxyScrape bietet Residential-, Datacenter- und Mobile-Proxies mit HTTP- und SOCKS5-Unterstützung, gestützt auf einen Pool von über 97 Mio. IPs. Dieses Tutorial zeigt, wie Sie ProxyScrape-Proxies in Python für Web-Scraping-Aufgaben verwenden. Sie lernen, Anfragen sowohl mit HTTP als auch SOCKS5 zu konfigurieren, die Authentifizierung zu handhaben und Proxies zu rotieren. Die Schritte gelten für jeden Proxy-Anbieter, aber wir verwenden ProxyScrape als Beispiel aufgrund seiner zuverlässigen Verfügbarkeit und langfristigen Stabilität.

Schritte

  1. Rufen Sie Proxy-Zugangsdaten von ProxyScrape ab. Melden Sie sich in Ihrem ProxyScrape-Dashboard an und navigieren Sie zum Proxy-Liste- oder API-Bereich. Dort finden Sie den Proxy-Endpunkt (IP:Port), den Benutzernamen und das Passwort. ProxyScrape bietet Pay-as-you-go-Abrechnungspläne und monatliche Flatrate-Abrechnungspläne an, wählen Sie also denjenigen, der zu Ihrem Scraping-Volumen passt.

  2. Installieren Sie die erforderlichen Python-Bibliotheken. Öffnen Sie Ihr Terminal und installieren Sie requests und requests[socks] für SOCKS5-Unterstützung:

    pip install requests requests[socks]
    
  3. Schreiben Sie ein einfaches Scraping-Skript mit HTTP-Proxies. Erstellen Sie eine Python-Datei und verwenden Sie den folgenden Code, um Anfragen über den HTTP-Proxy von ProxyScrape zu senden. Ersetzen Sie die Platzhalter durch Ihre tatsächlichen Zugangsdaten.

    import requests
    
    proxy_url = "http://username:password@proxy-endpoint:port"
    proxies = {
        "http": proxy_url,
        "https": proxy_url,
    }
    
    response = requests.get("http://httpbin.org/ip", proxies=proxies, timeout=10)
    print(response.json())
    
  4. Verwenden Sie SOCKS5-Proxies für bessere Anonymität. ProxyScrape unterstützt SOCKS5. Ändern Sie das Proxy-URL-Schema in socks5://:

    import requests
    
    proxy_url = "socks5://username:password@proxy-endpoint:port"
    proxies = {
        "http": proxy_url,
        "https": proxy_url,
    }
    
    response = requests.get("http://httpbin.org/ip", proxies=proxies, timeout=10)
    print(response.json())
    
  5. Rotieren Sie Proxies, um Rate-Limits zu vermeiden. Wenn Ihr ProxyScrape-Tarif einen rotierenden Endpunkt bietet, verwenden Sie diesen Endpunkt für jede Anfrage. Andernfalls pflegen Sie eine Liste von Proxy-Endpunkten aus Ihrem Dashboard und wechseln Sie diese durch. Beispiel:

    import requests
    import random
    
    proxy_list = [
        "http://user:pass@proxy1:port",
        "http://user:pass@proxy2:port",
        # ... add more
    ]
    
    def get_random_proxy():
        return random.choice(proxy_list)
    
    for _ in range(10):
        proxy_url = get_random_proxy()
        proxies = {"http": proxy_url, "https": proxy_url}
        try:
            response = requests.get("http://httpbin.org/ip", proxies=proxies, timeout=10)
            print(response.json())
        except Exception as e:
            print(f"Proxy failed: {e}")
    
  6. Behandeln Sie Fehler und Wiederholungsversuche. Proxy-Verbindungen können fehlschlagen. Fassen Sie Ihre Anfragen in try/except-Blöcke ein und implementieren Sie einen Wiederholungsmechanismus mit einem neuen Proxy bei Fehlschlag. Dadurch bleibt Ihr Scraper robust.

  7. Testen und skalieren Sie. Führen Sie Ihr Skript aus und überprüfen Sie, dass sich die IP bei jeder Anfrage ändert. Für Scraping im großen Maßstab sollten Sie ein Session-Objekt verwenden und die Parallelität basierend auf den Limits Ihres ProxyScrape-Tarifs anpassen.

Hinweis: Respektieren Sie stets die Nutzungsbedingungen der Website und robots.txt. ProxyScrapes Residential- und Datacenter-Proxies sind zuverlässig, aber ethische Scraping-Praktiken liegen in Ihrer Verantwortung.