Einrichten von Proxies in Selenium für Web Scraping

Anleitungen, Python, Proxies, 27. November 20245 Min. gelesen

Wenn Sie mit Selenium für Web Scraping oder Automatisierung arbeiten, ist die Integration von Proxies ein Muss. Proxys ermöglichen es Ihnen, Verbote, Ratenbeschränkungen und geografische Einschränkungen zu umgehen, was Ihre Aufgaben nahtlos und effizient macht. Die Konfiguration von Proxys in Selenium kann jedoch eine Herausforderung sein, insbesondere wenn Sie mit Authentifizierung arbeiten oder HTTP-Anfragen überwachen müssen. An dieser Stelle kommt Selenium Wire ins Spiel.

Selen-Draht

Selenium Wire ist eine erweiterte Version von Selenium, die zusätzliche fortgeschrittene Funktionen hinzufügt, indem sie es Ihnen ermöglicht, Proxys zu authentifizieren, HTTP-Anfragen und -Antworten abzufangen und Netzwerkverkehr zu debuggen.

In diesem Handbuch zeigen wir Ihnen, wie Sie Proxys in Selenium einrichten können. selenium-draht und die webdriver-manager. Normalerweise müssen Sie die Binärdateien für Web-Treiber von Browsern herunterladen und regelmäßig aktualisieren. Die webdriver-manager vereinfacht diesen Prozess, indem es diese Aufgaben für Sie übernimmt.

Am Ende dieses Blogs werden Sie ein vollständig konfiguriertes Selenium-Setup haben, das auf ProxyScrape Proxies zugeschnitten ist und bereit ist, alle Herausforderungen zu meistern, die auf Sie zukommen. Legen wir los!

TL;DR

Wenn Sie auf das vollständige Skript zugreifen möchten, ohne den gesamten Lehrgang zu durchlaufen, klicken Sie auf diesen Link, um den vollständigen Code zu kopieren.

Voraussetzungen 

Bevor wir uns mit dem Einrichten von Proxies in Selenium beschäftigen, sollten Sie sicherstellen, dass die folgenden Tools und Bibliotheken installiert und bereit sind:

  • Python Installiert
    • Stellen Sie sicher, dass Sie Python 3.7 oder höher auf Ihrem System installiert haben.
    • Sie können die neueste Version von der offiziellen Python-Website herunterladen.
  • Erforderliche Python-Pakete (Pip-Installation)
    • selenium-draht
    • webdriver-manager

Führen Sie den folgenden Befehl aus, um alle Abhängigkeiten zu installieren:

pip install selenium-wire webdriver-manager

Hinweis: Es kann die Fehlermeldung "ModuleNotFoundError: Kein Modul namens blinker._saferef". Dies kann durch ein Downgrade der Blinker-Bibliothek auf Version 1.7.0 behoben werden

  • Beginnen Sie zunächst mit Deinstallation von die aktuelle Version von Blinker
pip uninstall blinker
  • Installieren Sie dann die oben erwähnte Version:
pip install blinker==1.7.0

Nachdem die Voraussetzungen erfüllt sind, können wir die Skriptkonfiguration in drei einfache Schritte unterteilen:

Einrichten von Proxies in Selenium: Das Skript

Nachdem wir nun die Voraussetzungen behandelt haben, kommen wir nun zum eigentlichen Skript. Diese Schritt-für-Schritt-Anleitung hilft Ihnen bei der Integration von ProxyScrape Wohnsitzvollmachten mit Selenium unter Verwendung von selenium-draht und webdriver-manager.

1. Erforderliche Bibliotheken importieren

Wir beginnen mit dem Import der erforderlichen Bibliotheken:

re importieren 
von seleniumwire import webdriver
von selenium.webdriver.chrome.service importieren Dienst
von selenium.webdriver.chrome.options importieren Optionen
from webdriver_manager.chrome import ChromeDriverManager

2. Proxy-Konfiguration

Definieren Sie Ihre ProxyScrape Proxy-Details:

proxy_address = "rp.proxyscrape.com:6060"
proxy_benutzername = "ihr_proxy_benutzername"
proxy_password = "ihr_proxy_password"
  • Ersetzen Sie die Platzhalter (proxy_benutzername, proxy_passwort) mit Ihren aktuellen ProxyScrape Anmeldedaten.
  • rp.proxyscrape.com:6060 ist der Endpunkt des Proxy für Privatanwender ProxyScrape .

3. Selenium Draht Optionen

Richten Sie den Proxy in Selenium Wire ein:

sw_options = {
   'proxy': {
       'http': f'http://{proxy_username}:{proxy_password}@{proxy_address}',
       'https': f'https://{proxy_username}:{proxy_password}@{proxy_address}',
   }
}

4. Konfigurieren der Chrome-Optionen

Optimieren Sie die Chrome-Einstellungen für eine bessere Leistung:

chrome_options = Optionen()
chrome_options.add_argument("--start-maximiert")
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--disable-dev-shm-usage")

5. WebDriver initialisieren

Einrichten selenium-draht mit webdriver-manager:

Dienst = Dienst(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service, seleniumwire_options=sw_options, options=chrome_options)
  • ChromeDriverManager: Lädt automatisch die richtige ChromeDriver-Binärdatei für Ihre Browserversion herunter und richtet sie ein.
  • seleniumwire_options: Konfiguriert den Proxy für Selenium Wire.
  • Optionen: Wendet Chrome-spezifische Einstellungen an.

6. Zugriff auf die Ziel-Website

Navigieren Sie zum Endpunkt ProxyScrape Judge, um Ihren Proxy zu testen:

driver.get('https://ssl-judge2.api.proxyscrape.com/')
  • ProxyScrape Richter: Dieser Endpunkt liefert Informationen über den verwendeten Proxy, z. B. Ihre IP-Adresse und Header.

7. Parsen der Antwort

Extrahieren und Anzeigen Ihrer Proxy-IP-Adresse mithilfe von Regex:

# Beispiel: Extrahieren der IP aus der Antwort
Antwort = driver.page_source

# Verwendung einer einfachen Regex zum Parsen der Herkunfts-IP
print("Antwort:", response)
print("Ihre IP ist:", re.search("HTTP_X_FORWARDED_FOR = (\d+\.)+\d+", response).group().split("=")[-1])
# Beenden Sie die Browser-Instanz
driver.quit()
  • Regex Erläuterung:
    • Entspricht der Kopfzeile HTTP_X_FORWARDED_FOR und extrahiert die vermittelte IP
    • Teilt das Ergebnis auf, um die IP-Adresse zu isolieren

Schlussfolgerung

Zusammenfassend lässt sich sagen, dass die Verwendung von ProxyScrape Residential Proxies mit Selenium Wire eine robuste Lösung für alle ist, die fortschrittliche Web Scraping- und Automatisierungsfunktionen mit verbessertem Datenschutz und erhöhter Sicherheit benötigen.

Mit diesem Leitfaden können Sie eine nahtlose Umgebung einrichten, die nicht nur Einschränkungen umgeht, sondern auch einen minimalen Konfigurationsaufwand erfordert. Diese Methode nutzt leistungsstarke Tools wie Selenium Wire und WebDriver Manager, um den Datenverkehr effizient zu verwalten und über Proxys zu leiten, damit Ihre Scraping-Aufgaben effizient und zuverlässig bleiben.

Wenn Sie Hilfe beim Web Scraping benötigen oder Fragen zu unserem Produkt haben, zögern Sie nicht, uns per Live-Chat zu kontaktieren. Sie können auch unserer Discord-Community für Support und Updates beitreten.