Il World Wide Web è la fonte onnicomprensiva e ultima di tutti i dati che esistono. Il rapido sviluppo che Internet ha visto negli ultimi tre decenni è stato senza precedenti. Di conseguenza, il Web viene montato con centinaia di terabyte di dati ogni giorno che passa.
Tutti questi dati hanno un certo 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 le pubblicità che ti mostrano. E c'è anche molta concorrenza per questi dati; Alcuni MB in più alcuni dati possono dare alle aziende un vantaggio sostanziale rispetto alla loro concorrenza.
Data mining con python
Per aiutare quelli di voi che sono nuovi al raschiatura dei dati, abbiamo preparato questa guida in cui mostreremo come raschiare i dati dal web usando Python e bellissima biblioteca di zuppe.
Supponiamo che tu abbia già 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 capacità di mining di data mining, poiché molti siti considerano questo invadente e sappi che potrebbero esserci ripercussioni.
Installazione e preparazione delle librerie
Ora, useremo due librerie che useremo: la libreria di richieste di Python per caricare i contenuti dalle pagine Web e la bellissima biblioteca di zuppe per l'effettivo bit di raschiatura del processo. Ci sono alternative a Beautifulsoup, intendiamoci e se hai familiarità con una delle seguenti cose, sentiti libero di usarle invece: Scrappy, Mechizzal, Selenium, Portia, Kimono e ParseHub.
La libreria di richieste può essere scaricata e installata con il comando PIP come sotto:
# PIP3 Installa richiesteLa libreria di richieste deve essere installata sul tuo dispositivo. Allo stesso modo, scarica anche bellissimi:
# PIP3 Installa BeautifulSoup4Con ciò, le nostre biblioteche sono pronte per un po 'di azione.
Come accennato in precedenza, la libreria di richieste non ha molto uso se non quello di recuperare il contenuto delle pagine Web. La biblioteca di Beautifulsoup e le biblioteche richieste hanno un posto in ogni script che hai intenzione di scrivere e devono essere importate prima di ciascuna come segue:
$ Importa richiesteQuesto aggiunge la parola chiave richiesta allo spazio dei nomi, segnalando a Python il significato della parola chiave ogni volta che il suo uso viene richiesto. La stessa cosa accade alla parola chiave BS, anche se qui abbiamo il vantaggio di assegnare una parola chiave più semplice per Beautifulsoup.
WebPage = Richieste.Ottieni (URL)Il codice sopra recupera l'URL della pagina web e crea una stringa diretta da esso, memorizzandolo in una variabile.
$ WebContent = Pagina web.contenutoIl comando sopra copia il contenuto della pagina web e li assegna al contenuto Web variabile.
Con ciò, abbiamo finito con la libreria di richieste. Tutto ciò che resta da fare è cambiare le opzioni della libreria di richiesta in opzioni di bellissima.
$ htmlcontent = bs (webcontent, "html.parser “)Questo analizza l'oggetto di richiesta e lo trasforma in oggetti HTML leggibili.
Con quello che tutto curato, possiamo passare al bit di raschiatura reale.
Raschiatura del web con python e beautifulsoup
Andiamo avanti e vediamo come possiamo raschiare gli oggetti HTML di dati con bellissima.
Per illustrare un esempio, mentre spieghiamo le cose, lavoreremo con questo frammento HTML:
Siamo in grado di accedere al contenuto di questo frammento con bellissimosoup e usarlo sulla variabile di contenuto HTML come sotto:
Il codice sopra cerca eventuali tag denominati e lo mostra all'utente. Se trova più di un tag, li mostra uno alla volta:
Per salvare contemporaneamente i tag denominati in un elenco, emettiamo il codice finale come sotto:
L'output dovrebbe restituire così:
Per evocare uno dei tag, indicizzare l'elenco e prendere quello che desideri.
Ora vediamo come scegliere i tag mantenendo in prospettiva le loro caratteristiche. Per separare A, avremmo bisogno dei tag con l'attributo "Tech_head". Immettere il seguente codice:
per Div in zuppa.find_all ('div', atrs = 'class' = 'tech_head'):
Questo prende il tag.
Otterresti:
Tecnologia
Tutto senza tag.
Infine, tratteremo come scegliere il valore dell'attributo in un tag. Il codice dovrebbe avere questo tag:
Per operare il valore associato all'attributo SRC, useresti quanto segue:
htmlcontent.trova ("img") ["src"]E l'output si rivelerebbe come:
"Xyzlady.jpg "Oh ragazzo, questo è sicuramente un sacco di lavoro!
Se senti la tua familiarità con Python o HTML è inadeguato o se sei semplicemente sopraffatto dal raschiatura del web, non preoccuparti.
Se sei un'azienda che deve acquisire un particolare tipo di dati regolarmente ma che non può fare il graving da solo, ci sono modi per aggirare questo problema. Ma sappi che ti costerà dei soldi. Puoi trovare qualcuno da fare il raschiatura per te, oppure puoi ottenere il servizio di dati premium da siti Web come Google e Twitter per condividere i dati con te. Queste parti condividono i loro dati impiegando API, ma queste chiamate API sono limitate al giorno. A parte questo, siti Web come questi possono essere molto protettivi nei 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 la bella. Anche se c'è molto di più da coprire per il padron.