Pitone

Una guida per principianti al web scraping con Python e Beautiful soup

Una guida per principianti al web scraping con Python e Beautiful soup

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.soddisfare

Il 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

, e lo mostra all'utente. Se trova più di un tag, li mostra uno alla volta:

Tecnologia

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

tag, indicizza la lista e prendi quello che vuoi.

Ora vediamo come scegliere

tag mantenendo in prospettiva le loro caratteristiche. Per separare a
, ci servirebbe
tag con l'attributo "Tech_head". Inserisci il seguente codice:


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:

signora

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.

Come installare League Of Legends su Ubuntu 14.04
Se sei un fan di League of Legends, questa è un'opportunità per testare League of Legends. Nota che LOL è supportato su PlayOnLinux se sei un utente L...
Installa l'ultimo gioco di strategia OpenRA su Ubuntu Linux
OpenRA è un motore di gioco di strategia in tempo reale gratuito/libero che ricrea i primi giochi di Westwood come il classico Command & Conquer: Red ...
Installa l'ultimo Dolphin Emulator per Gamecube e Wii su Linux
L'emulatore Dolphin ti consente di giocare ai giochi Gamecube e Wii scelti su Personal Computer Linux (PC). Essendo un emulatore di giochi liberament...

Ultimi articoli sui sistemi operativi. Tante guide interessanti e consigli utili. Sentiti come il tuo nel mondo della tecnologia moderna