Selenium: find element by class

di Lorenzo Neri
61 visualizzazioni

Se ti stai chiedendo come trovare un elemento HTML secondo la sua classe CSS sei nel posto giusto. Con Selenium possiamo sfruttare il metodo “find element by class” di cui parlerò approfonditamente in questo articolo!

Fra tutte le potenzialità offerte da Selenium, il pacchetto Python che permette di mettere in pratica l’arte del web scraping, abbiamo senza dubbio il potere offerto da “find element by class”: trattasi di un metodo che permette di individuare all’interno della pagina HTML tutti quei tag che hanno la classe CSS da te stesso impostata.

Come funziona tutto questo? Seguimi per scoprirlo!

Ciao mi chiamo Lorenzo Neri e sono un informatico: mi occupo di realizzare contenuti che aiutino persone come te a padroneggiare l’arte del nuovo millennio, l’informatica!

Devi sapere che questo articolo così come tanti altri sono frutto dei miei sbagli nel corso della mia vita lavorativa: poi però a un certo punto ho deciso di cambiare rotta.

Come? Documentando.

Documentando con vari articoli che possano aiutare persone come te che mi stai leggendo a risolvere gli stessi problemi che ho incontrato io.

E di fatto in questo blog, parlando di Python, puoi trovare non pochi articoli: ti basta un click qui per aver accesso immediato ad essi.

Ma torniamo a noi: focalizziamoci su ciò di cui stiamo parlando da inizio articolo.

Find element by class: come funziona?

Selenium, nel caso non lo sapessi, offre parecchi metodi per eseguire lo scraping delle pagine web: non posso non lasciarti la documentazione ufficiale proprio qui.

E fra questo, c’è appunto “find element by class”.

Come funziona immagino tu l’abbia già intuito da qualche paragrafo fa, ma è giusto darti i relativi dettagli… E magari un esempio.

Ammettiamo di lavorare assieme su questo contenuto HTML:

<html>
  <body>
    <p class="paragrafo_blu">Contenuto del paragrafo blu</p>
  </body>
</html>
<html>
  <body>
    <p class="paragrafo_blu">Un secondo paragrafo blu</p>
  </body>
</html>

Il nostro obiettivo è, indovina un po’? Esatto, estrarre tutti i tag aventi come classe “paragrafo_blu”!

La prima cosa che dovrai fare nel tuo script è importare il necessario per eseguire e dare vita allo scraper vero e proprio:

from selenium import webdriver
driver = webdriver.Chrome(ChromeDriverManager().install())

Nel mio caso per praticità ho usato Google Chrome alla base del driver, ma tu puoi usare altri browser web a tua discrezione!

Dicevamo, quindi, che a questo punto possiamo usare il nostro tanto agognato metodo:

i_miei_tag = driver. find_elements_by_class_name("paragrafo_blu")

E quindi, breve storia felice, basta impostare come parametro della funzione il nome stesso della classe CSS e qui infatti noterai che non è propriamente “find_elements_by_class” il nome del metodo!

Ma di fatto, visto che si tratta di individuare gli elementi HTML in base al nome della classe, il nome completo è giusto che sia appunto “find_elements_by_class_name” 😉

Continua a scoprire di più con questi articoli!

Lascia un commento

Questo sito potrebbe fare uso di cookie e siccome l'UE mi obbliga a fartelo presente, eccoti il classico banner dove puoi decidere come gestirli. Accetta Leggi di più