NEW! |Eén API-aanroep, schone gegevens terug. Geen scrapers nodig.Ontvang 10.000 gratis tokens →

Selenium Python (6). How to Bypass Parser Detection with Selenium Stealth

Bij webscraping kan automatisering vaak worden gedwarsboomd door anti-botmechanismen die geautomatiseerde toegang tot data detecteren en blokkeren. Met de juiste

Gepubliceerd6 juni 2024
Leestijd3 min

Op het gebied van webscraping kan automatisering vaak worden gedwarsboomd door anti-botmechanismen die geautomatiseerde toegang tot gegevens detecteren en blokkeren. Met de juiste tools en technieken is het echter mogelijk om deze detecties te omzeilen en met succes de gegevens te verzamelen die u nodig heeft. In dit artikel onderzoeken we hoe u Selenium Stealth kunt gebruiken om uw schraapinspanningen discreter en effectiever te maken.

Inleiding tot Selenium en zijn uitdagingen#

Selenium is een populaire tool voor het automatiseren van webbrowsers, waardoor gebruikers programmatisch door websites kunnen navigeren en met hun elementen kunnen communiceren. Veel websites hebben echter maatregelen getroffen om geautomatiseerd browsen te detecteren en te blokkeren, waarbij patronen worden herkend die specifiek zijn voor Selenium. Dit kan ertoe leiden dat de toegang wordt geblokkeerd of dat onjuiste gegevens worden geretourneerd.

Belangrijkste punten:

  • Detectie van automatisering: Websites kunnen Selenium detecteren en de toegang blokkeren.
  • Gebruikelijke problemen: Het retourneren van onjuiste gegevens of het blokkeren van de gebruiker.

Wat is Selenium Stealth?#

Selenium Stealth is een bibliotheek die is ontworpen om geautomatiseerd browsen minder detecteerbaar te maken door menselijk surfgedrag na te bootsen. Het wijzigt de Selenium WebDriver zodat deze meer op de browser van een gewone gebruiker lijkt, waardoor veel anti-botmaatregelen worden omzeild.

Kenmerken van Selenium Stealth:

  • Bootst mensachtig surfgedrag na.
  • Omzeilt algemene seleniumdetectiemechanismen.

Selenium Stealth instellen#

Om Selenium Stealth te gaan gebruiken, moet je zowel Selenium als de Selenium Stealth-bibliotheek installeren. Hieronder vindt u de stappen om Selenium Stealth in te stellen en te integreren met uw Selenium-scripts.

Installatiestappen:

Selenium installeren:

pip install selenium

Installeer Selenium Stealth:

pip install selenium-stealth

Voorbeeld: Schrapen met Selenium Stealth#

Hier is een stapsgewijs voorbeeld van hoe u Selenium Stealth instelt en gebruikt om gegevens van een website te schrapen zonder detectie.

Stap 1: Bibliotheken importeren

from selenium import webdriver
from selenium_stealth import stealth

Stap 2: Stel WebDriver in met Stealth

options = webdriver.ChromeOptions()
driver = webdriver.Chrome(options=options)

stealth(driver,
        languages=["en-US", "en"],
        vendor="Google Inc.",
        platform="Win32",
        webgl_vendor="Intel Inc.",
        renderer="Intel Iris OpenGL Engine",
        fix_hairline=True)

driver.get('https://example.com')

Stap 3: Voer uw scraptaken uit

# Example: Finding elements and extracting data
element = driver.find_element_by_class_name('example-class')
data = element.text
print(data)

Een tabel insluiten voor duidelijkheid#

Voor een beter begrip vindt u hier een tabel met een samenvatting van de stappen en hun doeleinden:

StapBeschrijving
1Importeer Selenium- en Selenium Stealth-bibliotheken.
2Stel WebDriver in en pas stealth-wijzigingen toe.
3Voer webscraping-taken uit zonder opgemerkt te worden.

Geavanceerde technieken met Selenium Stealth#

Om uw schraapinspanningen verder te verbeteren, kunt u overwegen de volgende geavanceerde technieken te implementeren:

Dynamische inhoud verwerken:

  • Gebruik WebDriverWait om elementen af te handelen die dynamisch worden geladen.
  • Voorbeeld:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

element = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.ID, "dynamicElement"))
)

Roterende proxy’s:

  • Roteer proxy’s om IP-verboden te voorkomen.
  • Voorbeeld:
options.add_argument('--proxy-server=http://your.proxy.server:port')

Veelvoorkomende fouten en probleemoplossing#

Zelfs met Selenium Stealth kunt u enkele problemen tegenkomen. Hier volgen enkele veelvoorkomende fouten en hoe u deze kunt oplossen:

  • DriverNotFoundFout: Zorg ervoor dat de juiste WebDriver is geïnstalleerd en dat het pad correct is ingesteld.
  • Time-outUitzondering: Gebruik WebDriverWait om dynamische elementen correct af te handelen.

Conclusie#

Door Selenium Stealth te integreren met uw Selenium-scripts kunt u de kans op detectie aanzienlijk verkleinen en met succes gegevens verzamelen van websites die anti-botmaatregelen implementeren. Deze aanpak helpt bij het behouden van toegang en het ophalen van nauwkeurige gegevens, waardoor uw webscraping-inspanningen efficiënter en betrouwbaarder worden.

Zorg er altijd voor dat uw scrapingactiviteiten voldoen aan de servicevoorwaarden en wettelijke richtlijnen van de website.