In this Article
Selenium eignet sich hervorragend für die Webautomatisierung. In Kombination mit einem Proxy schützt es jedoch Ihre Privatsphäre, sorgt für eine stabile Verbindung und ermöglicht Ihnen, Inhalte ohne Unterbrechungen zu nutzen. Einfach gesagt ist es ein von Jason Huggins entwickeltes Open-Source-Tool zum Automatisieren oder Testen von Webanwendungen. Es umfasst Module wie Selenium IDE, Grid, Standalone Server und WebDriver.
In diesem Leitfaden führen wir Sie durch die wichtigsten Schritte, um Selenium mit einem Proxy in Python für Web-Scraping-Aufgaben einzurichten.
Erste Schritte
Stellen Sie zunächst sicher, dass Python und pip (Python Package Manager) installiert sind. Falls nicht, laden Sie Python von der offiziellen Website herunter, öffnen Sie die heruntergeladene .pkg-Datei und folgen Sie den Anweisungen. Sehen wir uns die grundlegenden Schritte an:
1. Öffnen Sie Ihr Terminal oder die Eingabeaufforderung. Wenn Sie einen Mac verwenden, klicken Sie im Dock auf das Launchpad-Symbol, geben Sie Terminal in das Suchfeld ein und klicken Sie dann auf Terminal. Unter Windows geben Sie im Fenster Ausführen cmd ein. Dadurch wird die Eingabeaufforderung oder das PowerShell-Terminal geöffnet.
2. Geben Sie in Ihrem Terminal Folgendes ein:
python --version
Wenn Sie Python 3 verwenden, fügen Sie nach python einfach eine 3 hinzu. Das kann auch für andere Befehle gelten:
python3 --version
pip wird normalerweise automatisch mit Python 3.4+ installiert. Dennoch sollten Sie prüfen, ob pip installiert ist. Geben Sie dazu Folgendes ein:
pip --version
pip3 --version
3. Verwenden Sie pip , um das Selenium-Paket zu installieren:
pip install selenium
Wenn Sie Python 3 verwenden, nutzen Sie nach Möglichkeit pip3, um sicherzustellen, dass es für Python 3 installiert wird:
pip3 install selenium
4. Prüfen Sie, ob die Installation abgeschlossen ist.
Nach der Installation können Sie durch Ausführen des folgenden Befehls prüfen, ob Selenium installiert ist:
pip show selenium
WebDriver für Selenium verwenden
Selenium benötigt einen WebDriver, um mit Browsern wie Chrome, Firefox und anderen zu interagieren. Sie müssen den passenden Treiber herunterladen und sicherstellen, dass er im PATH Ihres Systems verfügbar ist. Wir arbeiten mit Chrome, dem Standardbrowser für die meisten Automatisierungsprojekte.
1. Rufen Sie die offizielle Downloadseite für ChromeDriver auf:
https://developer.chrome.com/docs/chromedriver/downloads
2. Suchen Sie den Link, der zu Ihrer Chrome-Version passt, und laden Sie ChromeDriver für macOS herunter.
Die heruntergeladene Datei liegt im ZIP-Format vor. Doppelklicken Sie einfach darauf, um sie zu entpacken. Anschließend erhalten Sie die ausführbare Datei chromedriver.
Für einen einfachen Zugriff sollten Sie die Datei chromedriver in ein Verzeichnis verschieben, das im PATH Ihres Systems enthalten ist. Gängige Verzeichnisse sind /usr/local/bin oder /usr/bin. Verwenden Sie diesen Befehl:
sudo mv ~/Downloads/chromedriver /usr/local/bin/
***Wenn der Fehler “No such file or directory” angezeigt wird, ist der Dateipfad in Ihrem Befehl in der Regel falsch oder die Datei existiert nicht am angegebenen Speicherort. Prüfen Sie noch einmal, ob Sie sich in dem Verzeichnis befinden, in dem die Datei chromedriver liegt und ob der Dateiname keine Erweiterungen oder Tippfehler enthält.
Wenn Sie den Befehl mv mit sudo verwenden, um Dateien in Verzeichnisse wie /usr/local/bin zu verschieben, fordert macOS Sie zur Eingabe Ihres Passworts auf. Dabei handelt es sich um das Passwort Ihres Benutzerkontos. Geben Sie es ein und drücken Sie die Eingabetaste. Beachten Sie, dass Ihr Passwort während der Eingabe nicht auf dem Bildschirm angezeigt wird, also keine Zeichen oder Symbole erscheinen.
Um zu prüfen, ob ChromeDriver korrekt installiert ist, geben Sie im Terminal den folgenden Befehl ein:
chromedriver --version/
Ein einfaches Python-Skript erstellen
Laden Sie als Nächstes einen beliebigen Texteditor herunter, in unserem Fall VS Code, oder verwenden Sie eine IDE, um eine neue Datei mit dem Namen selenium_test.py. zu erstellen.
Zum Erstellen eines einfachen Python-Skripts müssen wir das Modul webdriver-manager installieren.
- Wir können das Paket mit pip installieren. Führen Sie im Terminal den folgenden Befehl aus:
pip install webdriver-manager/
pip install selenium webdriver-manager/
Nach dem Ausführen des obigen Befehls sollte Ihr Skript wie erwartet funktionieren:
# pip install selenium webdriver-manager
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.options import Options
# set Chrome options to run in headless mode
options = Options()
options.add_argument("--headless=new")
# initialize Chrome driver
driver = webdriver.Chrome(
service=Service(ChromeDriverManager().install()),
options=options
)
# navigate to the target webpage
driver.get("https://httpbin.io/ip")
# print the HTML of the target webpage
print(driver.page_source)
# release the resources and close the browser
driver.quit()/
Sie sehen dieses Ergebnis:
Einen kostenlosen Proxy in Selenium einrichten
In diesem Abschnitt erfahren Sie, wie Sie mit Python einen Selenium-Proxy einrichten und kostenlose Proxys ausprobieren. Besuchen Sie die Website https://free-proxy-list.net/ und wählen Sie einen kostenlosen Proxy für Ihren Test aus. Im Skript müssen Sie die Proxy-Adresse und den Port festlegen. Wählen wir beispielsweise diesen kostenlosen Proxy:
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
# define the proxy address and port
proxy = "194.5.25.34:443"
# set Chrome options to run in headless mode using a proxy
options = Options()
options.add_argument("--headless=new")
options.add_argument(f"--proxy-server={proxy}")
# initialize Chrome driver
driver = webdriver.Chrome(
service=Service(ChromeDriverManager().install()),
options=options
)
# navigate to the target webpage
driver.get("https://httpbin.io/ip")
# print the body content of the target webpage
print(driver.find_element(By.TAG_NAME, "body").text)
# release the resources and close the browser
driver.quit()/
Im Terminal erhalten Sie die folgende Antwort:
{
“origin”: “194.5.25.34:443”
}
Das bedeutet, dass Selenium Seiten über den Proxy-Server aufruft. Seien Sie jedoch vorsichtig, denn kostenlose Proxys können langsam sein und Ihre Daten verkaufen.
Selenium Wire
Selenium Wire ist eine leistungsstarke Erweiterung für Selenium, mit der Sie Netzwerkverkehr abfangen und analysieren können. Durch die Prüfung von HTTP-Anfragen und -Antworten können Sie besser verstehen, wie eine Webanwendung mit ihrem Server interagiert. Der Chrome-Treiber verarbeitet Benutzername und Passwort nicht automatisch. Deshalb benötigen Sie ein Drittanbieter-Plugin wie Selenium Wire.
Um Selenium Wire zu installieren, führen Sie diesen Befehl in Ihrem Terminal aus:
pip install blinker==1.7.0 selenium-wire/
pip3 install blinker==1.7.0 selenium-wire/
DataImpulse-Proxys in Selenium
Jetzt ist es an der Zeit, DataImpulse-Proxys einzusetzen. Da alles installiert ist, können wir mit der Proxy-Authentifizierung fortfahren. Für diesen Schritt benötigen Sie Ihren Benutzernamen, Ihr Passwort, Ihre Adresse und Ihren Port, die im Bereich Ihres ausgewählten Tarifs im DataImpulse-Dashboard gespeichert sind. Wir verwenden einen Residential-Proxy.
Kommen wir zum Skript:
from seleniumwire import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
# configure the proxy
proxy_username = ""
proxy_password = ""
proxy_address = "gw.dataimpulse.com"
proxy_port = "823"
# formulate the proxy url with authentication
proxy_url = f"http://{proxy_username}:{proxy_password}@{proxy_address}:{proxy_port}"
# set selenium-wire options to use the proxy
seleniumwire_options = {
"proxy": {
"http": proxy_url,
"https": proxy_url
},
}
# set Chrome options to run in headless mode
options = Options()
options.add_argument("--headless=new")
# initialize the Chrome driver with service, selenium-wire options, and chrome options
driver = webdriver.Chrome(
service=Service(ChromeDriverManager().install()),
seleniumwire_options=seleniumwire_options,
options=options
)
# navigate to the target webpage
driver.get("https://httpbin.io/ip")
# print the body content of the target webpage
print(driver.find_element(By.TAG_NAME, "body").text)
# release the resources and close the browser
driver.quit()/
In VS Code sieht es so aus:
Als Ergebnis erhalten Sie eine Antwort mit Ihrem ‘origin’. Das bedeutet, dass die Authentifizierung erfolgreich abgeschlossen wurde.
Tipps
- Besuchen Sie nur offizielle Websites – Laden Sie alle erforderlichen Programme von sicheren offiziellen Websites herunter.
- Kompatibilität prüfen – Prüfen Sie noch einmal, ob die Versionen von Selenium, ChromeDriver und Ihrem Browser miteinander kompatibel sind.
- Regelmäßig aktualisieren – Prüfen Sie Selenium, ChromeDriver und andere Tools regelmäßig, um die neuesten Funktionen zu nutzen.
- Anmeldedaten sicher verwalten – Schützen und verwalten Sie Ihre Authentifizierungsdaten auf sichere Weise.
- Virtuelle Umgebungen verwenden – Erstellen Sie eine virtuelle Umgebung, um Ihre Abhängigkeiten übersichtlich zu halten und Paketkonflikte zu vermeiden.
- Fehlerbehandlung – Fügen Sie Ihren Skripten Mechanismen zur Fehlerbehandlung hinzu, um mögliche Probleme bei der Verwendung von Proxys oder bei der Arbeit mit Webelementen abzufangen.
Fazit
Wenn Sie Selenium einrichten möchten, sollten Sie es unbedingt ausprobieren. Die Verwendung eines Proxys mit Selenium ist wie ein zusätzlicher Gang für Ihren Motor: Sie erhalten mehr Leistung und Kontrolle. Befolgen Sie unsere Anweisungen und Tipps, um alle Pakete gleich beim ersten Versuch erfolgreich einzubinden. Denken Sie daran, dass zuverlässige Proxys gegenüber kostenlosen Proxys die bessere Wahl sind, wenn Sie mehr Geschwindigkeit, Sicherheit und Stabilität wünschen.









