NOVITÀ! |Una sola chiamata API, dati puliti in risposta. Nessuno scraper necessario.Ottieni 10.000 token gratuiti →

Selenium Python (6). Come aggirare il rilevamento dei parser con Selenium Stealth

Nel mondo del web scraping, l'automazione può spesso essere ostacolata da meccanismi anti-bot che rilevano e bloccano l'accesso automatizzato ai dati. Tuttavia, con i giusti

Pubblicato6 giugno 2024
Tempo di lettura3 min

Nel campo del web scraping, l’automazione può spesso essere ostacolata da meccanismi anti-bot che rilevano e bloccano l’accesso automatizzato ai dati. Tuttavia, con gli strumenti e le tecniche giusti, è possibile aggirare questi rilevamenti e recuperare con successo i dati di cui hai bisogno. In questo articolo esploreremo come utilizzare Selenium Stealth per rendere i tuoi sforzi di scraping più discreti ed efficaci.

Introduzione al selenio e alle sue sfide#

Selenium è uno strumento popolare per automatizzare i browser Web, consentendo agli utenti di navigare in modo programmatico nei siti Web e interagire con i loro elementi. Tuttavia, molti siti Web adottano misure per rilevare e bloccare la navigazione automatizzata, riconoscendo modelli specifici di Selenium. Ciò può comportare il blocco dell’accesso o la restituzione di dati errati.

Punti chiave:

  • Rilevamento dell’automazione: I siti Web possono rilevare il selenio e bloccarne l’accesso.
  • Problemi comuni: Restituzione di dati errati o blocco dell’utente.

Cos’è il selenio invisibile?#

Selenium Stealth è una libreria progettata per rendere la navigazione automatizzata meno rilevabile imitando il comportamento di navigazione simile a quello umano. Modifica il Selenium WebDriver in modo che appaia più simile al browser di un utente normale, aggirando così molte misure anti-bot.

Caratteristiche di Selenium Stealth:

  • Imita il comportamento di navigazione simile a quello umano.
  • Bypassa i comuni meccanismi di rilevamento del selenio.

Impostazione del Selenium Stealth#

Per iniziare a utilizzare Selenium Stealth, è necessario installare sia Selenium che la libreria Selenium Stealth. Di seguito sono riportati i passaggi per configurare e integrare Selenium Stealth con i tuoi script Selenium.

Passaggi di installazione:

Installa il selenio:

pip install selenium

Installa Selenium Stealth:

pip install selenium-stealth

Esempio: Raschiatura con Selenium Stealth#

Ecco un esempio passo dopo passo su come configurare e utilizzare Selenium Stealth per raschiare dati da un sito web bypassando il rilevamento.

Passaggio 1: importare librerie

from selenium import webdriver
from selenium_stealth import stealth

Passaggio 2: configura WebDriver con 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')

Passaggio 3: esegui le attività di raschiatura

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

Incorporare una tabella per maggiore chiarezza#

Per una migliore comprensione, ecco una tabella che riassume i passaggi e il loro scopo:

PassaggioDescrizione
1Importa le librerie Selenium e Selenium Stealth.
2Configura WebDriver e applica modifiche invisibili.
3Esegui attività di web scraping senza essere rilevato.

Tecniche avanzate con Selenium Stealth#

Per migliorare ulteriormente i tuoi sforzi di scraping, prendi in considerazione l’implementazione delle seguenti tecniche avanzate:

Gestione dei Contenuti Dinamici:

  • Utilizza WebDriverWait per gestire gli elementi che vengono caricati dinamicamente.
  • Esempio:
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"))
)

Rotating Proxy:

  • Ruota i proxy per evitare i ban IP.
  • Esempio:
options.add_argument('--proxy-server=http://your.proxy.server:port')

Errori comuni e risoluzione dei problemi#

Anche con Selenium Stealth, potresti riscontrare alcuni problemi. Ecco alcuni errori comuni e come risolverli:

  • Errore DriverNotFound: Assicurarsi che sia installato il WebDriver corretto e che il relativo percorso sia impostato correttamente.
  • TimeoutException: Utilizza WebDriverWait per gestire correttamente gli elementi dinamici.

Conclusione#

Integrando Selenium Stealth con i tuoi script Selenium, puoi ridurre significativamente le possibilità di rilevamento e raccogliere con successo dati da siti Web che implementano misure anti-bot. Questo approccio aiuta a mantenere l’accesso e a recuperare dati accurati, rendendo le tue attività di web scraping più efficienti e affidabili.

Ricorda, assicurati sempre che le tue attività di scraping rispettino i termini di servizio e le linee guida legali del sito web.