NEU! |Ein API-Call, saubere Daten zurück. Keine Scraper nötig.10.000 Tokens gratis →

Selenium Python (3). Selenium-Erkennung mit Python umgehen: User Agents und Hintergrundausführung

Erfahren Sie, wie Sie die automatisierte Browsererkennung mit Python, User Agents und Hintergrundausführung umgehen. Verbessern Sie Ihre Web-Scraping- und Automatisierungsfähigkeiten.

Veröffentlicht3. Juni 2024
Lesezeit3 Min.

Web-Scraping und Browser-Automation sind für viele Unternehmen und Entwickler unverzichtbar geworden. Allerdings erkennen und blockieren immer mehr Websites automatisiertes Browsing. Dieser Artikel zeigt Ihnen, wie Sie die Selenium-Erkennung mit Python umgehen, indem Sie User Agents manipulieren und Selenium im Hintergrund ausführen. Wir gehen detailliert auf die notwendigen Schritte, Tools und Best Practices ein, um erfolgreiches Web-Scraping zu gewährleisten.

Selenium-Erkennung verstehen#

Bevor wir die Erkennung umgehen, schauen wir uns an, wie sie funktioniert. Websites können Selenium erkennen, indem sie auf bestimmte WebDriver-Flags und Eigenschaften prüfen. Wenn eine Website diese Flags identifiziert, kann sie den Zugriff blockieren oder irreführende Daten bereitstellen. Wenn Sie eine Website beispielsweise mit einem Standard-Chrome-Browser öffnen, antwortet sie wie erwartet. Öffnen Sie dieselbe Website jedoch mit Selenium, kann die Website die Automation erkennen und blockieren. Diese Erkennung funktioniert, weil Selenium spezifische Flags setzt, nach denen Websites suchen können.

WebDriver-Flags ändern#

Um die Selenium-Erkennung zu umgehen, ist eine wirksame Methode die Änderung der WebDriver-Flags.

  1. Firefox-Konfiguration: Öffnen Sie die Firefox-Konfigurationsseite, indem Sie eingeben about:config in die Adressleiste ein. Suchen Sie das WebDriver-bezogene Flag und setzen Sie es auf false.
  2. Code-Implementierung:
from selenium import webdriver

# Set Firefox preferences
options = webdriver.FirefoxOptions()
options.set_preference("dom.webdriver.enabled", False)
options.set_preference('useAutomationExtension', False)

driver = webdriver.Firefox(options=options)

Dieses Skript deaktiviert das WebDriver-Erkennungs-Flag, sodass der Browser wie eine reguläre, von Benutzern gesteuerte Instanz wirkt.

User Agents#

Ein User Agent ist eine Zeichenkette, die ein Browser an einen Webserver sendet, um sich selbst zu identifizieren. Das Ändern der User-Agent-Zeichenkette kann Selenium-Requests von regulären Browser-Requests ununterscheidbar machen.

Schritte zum Ändern des User Agent:

  1. Identifizieren Sie eine häufig verwendete User-Agent-Zeichenkette: Beispiel: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
  2. Änderung in Selenium implementieren:
from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36")

driver = webdriver.Chrome(options=options)

Durch das Setzen eines benutzerdefinierten User Agent können wir viele grundlegende Erkennungen umgehen.

Ausführung von Selenium im Hintergrund#

Die Ausführung des Browsers im Hintergrund ist ein weiterer entscheidender Aspekt der Erkennung von Umgehungen. Dies kann durch die Ausführung des Browsers im Headless-Modus erreicht werden.

Implementierung:

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument("--headless")

driver = webdriver.Chrome(options=options)

Die Ausführung im Headless-Modus bedeutet, dass keine grafische Oberfläche angezeigt wird, was für die Ausführung automatisierter Aufgaben auf Servern unerlässlich ist.

Benachrichtigungen und Töne des Browsers deaktivieren#

Automatisiertes Browsing beinhaltet oft die Verarbeitung unerwarteter Pop-ups und Benachrichtigungen. Das Deaktivieren dieser kann den Prozess rationalisieren.

Code-Beispiel:

from selenium import webdriver

options = webdriver.ChromeOptions()
prefs = {"profile.default_content_setting_values.notifications": 2}
options.add_experimental_option("prefs", prefs)
options.add_argument("--mute-audio")

driver = webdriver.Chrome(options=options)

Dieses Skript deaktiviert Benachrichtigungen und schaltet Audio stumm, um eine unterbrechungsfreie Automatisierung zu gewährleisten.

Beispiel zum Parsing von Daten#

Betrachten wir ein praktisches Beispiel zum Parsing von Nicknamen von einer Website, die zufällige Benutzernamen generiert.

Schritte:

  1. Website laden und mit Elementen interagieren:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

options = webdriver.ChromeOptions()
options.add_argument("--headless")
options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36")

driver = webdriver.Chrome(options=options)
driver.get("https://example.com")

# Locate the username field and extract nicknames
usernames = []
for _ in range(10):
    nickname = driver.find_element(By.ID, "nickname").text
    usernames.append(nickname)
    driver.find_element(By.ID, "generate").click()
print(usernames)

Fazit#

Durch das Manipulieren von WebDriver-Flags, das Ändern von User Agents, das Ausführen von Selenium im Hintergrund und das Deaktivieren von Browser-Benachrichtigungen können Sie die Selenium-Erkennung effektiv umgehen. Diese Techniken sind unverzichtbar für nahtloses und unerkanntes Web-Scraping und Automation. Die Implementierung dieser Methoden gewährleistet, dass Ihre automatisierten Aufgaben unterbrechungsfrei und effizient ablaufen. Denken Sie daran, Web-Scraping und Automation immer verantwortungsvoll einzusetzen und die Nutzungsbedingungen von Websites sowie Datenschutzgesetze zu respektieren. Für fortgeschrittenere Techniken und regelmäßige Updates folgen Sie unserem Blog auf FineProxy.org. Teilen Sie gerne Ihre Ideen und Ihr Feedback in den Kommentaren mit. Wenn Ihnen dieser Artikel gefallen hat, vergessen Sie nicht, unseren Kanal zu abonnieren und einen Like zu geben. Viel Erfolg beim Scraping!

Durch die Implementierung dieser Schritte und die erforderliche Anpassung der Einstellungen stellen Sie sicher, dass Ihre Automatisierungsprojekte problemlos und unerkannt ausgeführt werden.