Il world wide web è la fonte onnicomprensiva e definitiva di tutti i dati disponibili. Il rapido sviluppo che Internet ha visto negli ultimi tre decenni è stato senza precedenti. Di conseguenza, il web viene caricato con centinaia di terabyte di dati ogni giorno che passa.
Tutti questi dati hanno un valore per un certo qualcuno. Ad esempio, la tua cronologia di navigazione ha un significato per le app di social media, poiché la usano per personalizzare gli annunci che ti mostrano. E c'è anche molta concorrenza per questi dati; pochi MB in più di alcuni dati possono dare alle aziende un vantaggio sostanziale rispetto alla concorrenza.
Data mining con Python
Per aiutare quelli di voi che non conoscono lo scraping dei dati, abbiamo preparato questa guida in cui mostreremo come eseguire lo scraping dei dati dal Web utilizzando Python e Beautiful soup Library.
Supponiamo che tu abbia già una familiarità intermedia con Python e HTML, poiché lavorerai con entrambi seguendo le istruzioni in questa guida.
Sii cauto su quali siti stai provando le tue nuove abilità di data mining, poiché molti siti considerano questo invadente e sanno che potrebbero esserci ripercussioni.
Installazione e preparazione delle librerie
Ora useremo due librerie che useremo: la libreria di richiesta di Python per caricare i contenuti dalle pagine web e la libreria Beautiful Soup per l'effettivo pezzo di scraping del processo. Ci sono alternative a BeautifulSoup, bada bene, e se hai familiarità con uno dei seguenti, sentiti libero di usare questi invece: Scrappy, Mechanize, Selenium, Portia, kimono e ParseHub.
La libreria di richiesta può essere scaricata e installata con il comando pip come sotto:
# richieste di installazione pip3
La libreria delle richieste dovrebbe essere installata sul tuo dispositivo. Allo stesso modo, scarica anche BeautifulSoup:
# pip3 installa beautifulsoup4
Con ciò, le nostre biblioteche sono pronte per un po' di azione.
Come accennato in precedenza, la libreria delle richieste non ha molto bisogno di recuperare i contenuti dalle pagine web. La libreria BeautifulSoup e le librerie delle richieste hanno un posto in ogni script che stai per scrivere e devono essere importate prima di ciascuna come segue:
$importare richieste$da bs4 import BeautifulSoup come bs
Questo aggiunge la parola chiave richiesta allo spazio dei nomi, segnalando a Python il significato della parola chiave ogni volta che viene richiesto il suo utilizzo. La stessa cosa accade alla parola chiave bs, anche se qui abbiamo il vantaggio di assegnare una parola chiave più semplice per BeautifulSoup.
pagina web = richieste.ottieni (URL)Il codice sopra recupera l'URL della pagina web e ne crea una stringa diretta, memorizzandola in una variabile.
$contenuto web = pagina web.soddisfareIl comando sopra copia i contenuti della pagina web e li assegna alla variabile contenuto web.
Con questo, abbiamo finito con la libreria delle richieste. Tutto quello che resta da fare è cambiare le opzioni della libreria delle richieste in opzioni BeautifulSoup.
$htmlcontent = bs(webcontent, “html.analizzatore“)
Questo analizza l'oggetto della richiesta e lo trasforma in oggetti HTML leggibili.
Fatto tutto questo, possiamo passare alla vera raschiatura.
Web scraping con Python e BeautifulSoup
Andiamo avanti e vediamo come possiamo raschiare oggetti HTML di dati con BeautifulSoup.
Per illustrare un esempio, mentre spieghiamo le cose, lavoreremo con questo frammento html:
Possiamo accedere al contenuto di questo frammento con BeautifulSoup e usarlo sulla variabile del contenuto HTML come sotto:
Il codice sopra cerca qualsiasi tag denominato
Per salvare contemporaneamente i tag denominati
a una lista, emetteremo il codice finale come sotto:
L'output dovrebbe restituire in questo modo:
Per evocare uno dei
Ora vediamo come scegliere
tag mantenendo in prospettiva le loro caratteristiche. Per separare a , ci servirebbe
per div in zuppa.find_all('div',attrs='class'='Tech_head'):
Questo recupera il
etichetta.Otterrai:
Tecnologia
Tutto senza tag.
Infine, tratteremo come selezionare il valore dell'attributo in un tag. Il codice dovrebbe avere questo tag:
Per utilizzare il valore associato all'attributo src, dovresti utilizzare quanto segue:
contenuto html.trova(“img“)[“origine“]E l'output risulterebbe come:
"immagini_4/a-guida-per-principianti-per-raschiare-il-web-con-pitone-e-bella-zuppa.jpg"
Oh ragazzo, sicuramente è un sacco di lavoro!
Se ritieni che la tua familiarità con Python o HTML sia inadeguata o se sei semplicemente sopraffatto dal web scraping, non preoccuparti.
Se sei un'azienda che ha bisogno di acquisire regolarmente un particolare tipo di dati ma non può eseguire autonomamente il web-scraping, ci sono modi per aggirare questo problema. Ma sappi che ti costerà dei soldi. Puoi trovare qualcuno che faccia lo scraping per te oppure puoi ottenere il servizio dati premium da siti Web come Google e Twitter per condividere i dati con te. Questi condividono parti dei loro dati utilizzando API, ma queste chiamate API sono limitate al giorno. A parte questo, siti web come questi possono essere molto protettivi nei confronti dei loro dati. In genere molti di questi siti non condividono affatto i loro dati.
Pensieri finali
Prima di concludere, lascia che te lo dica ad alta voce se non è già stato evidente; i comandi find(), find_all() sono i tuoi migliori amici quando sei fuori a raschiare con BeautifulSoup. Sebbene ci sia molto altro da coprire per padroneggiare lo scraping dei dati con Python, questa guida dovrebbe essere sufficiente per quelli di voi che hanno appena iniziato.