Che cos'è il Web Scraping? Come raccogliere dati dai siti Web

web-scraping

I web scrapers raccolgono automaticamente informazioni e dati che di solito sono accessibili solo visitando un sito Web in un browser. Facendo questo in modo autonomo, gli script di scraping web aprono un mondo di possibilità nel data mining, nell'analisi dei dati, nell'analisi statistica e molto altro ancora.

Perché il Web Scraping è utile

Viviamo in un giorno ed età in cui le informazioni sono più prontamente disponibili di qualsiasi altro momento. L'infrastruttura utilizzata per consegnare queste stesse parole che stai leggendo è un canale di più conoscenza, opinione e notizie di quante siano mai state accessibili alle persone nella storia delle persone.

Tanto, infatti, che il cervello della persona più intelligente, potenziato al 100% di efficienza (qualcuno dovrebbe fare un film su questo), non sarebbe ancora in grado di contenere 1/1000 dei dati memorizzati su Internet negli Stati Uniti da solo .

Cisco ha stimato nel 2016 che il traffico su Internet ha superato uno zettabyte, che è di 1.000.000.000.000.000.000.000 di byte, o un sestilione di byte (andare avanti, ridacchiare al sestilione). Uno zettabyte è circa quattromila anni di streaming di Netflix. Ciò equivarrebbe a se tu, intrepido lettore, dovessi trasmettere The Office dall'inizio alla fine senza smettere di 500.000 volte.

Visualizzazione dati Internet zettabyte exabyte petabyte terabyte gigabyte megabyte
Immagine di credito: Cisco / The Dawn of the Zettabyte

Tutti questi dati e informazioni sono molto intimidatori. Non tutto è giusto. Non molto di questo è rilevante per la vita di tutti i giorni, ma sempre più dispositivi stanno distribuendo queste informazioni dai server di tutto il mondo ai nostri occhi e nei nostri cervelli.

Poiché i nostri occhi e il nostro cervello non sono in grado di gestire tutte queste informazioni, il web scraping è emerso come un metodo utile per raccogliere dati a livello di programmazione da Internet. Il raschiamento del web è il termine astratto per definire l'atto di estrarre i dati dai siti Web per salvarli localmente.

Pensa a un tipo di dati e probabilmente puoi raccoglierlo raschiando il web. Le inserzioni immobiliari, i dati sportivi, gli indirizzi e-mail delle aziende nella tua zona e anche i testi del tuo artista preferito possono essere cercati e salvati scrivendo una piccola sceneggiatura.

In che modo un browser ottiene i dati Web?

Per capire gli sviluppatori web, dovremo capire come funziona il Web per primo. Per accedere a questo sito web, hai digitato "makeuseof.com" nel tuo browser web o hai fatto clic su un link da un'altra pagina web (dicci dove, seriamente vogliamo sapere). Ad ogni modo, il prossimo paio di passi sono gli stessi.

Innanzitutto, il tuo browser utilizzerà l'URL inserito o cliccato (Suggerimento: passa il mouse sopra il link per visualizzare l'URL nella parte inferiore del browser prima di fare clic su di esso per evitare di essere punk) e formulare una "richiesta" da inviare a un server. Il server elaborerà quindi la richiesta e invierà una risposta.

La risposta del server contiene HTML, JavaScript, CSS, JSON e altri dati necessari per consentire al browser Web di creare una pagina Web per il piacere della visione.

Ispezione degli elementi Web

I browser moderni ci consentono alcuni dettagli su questo processo. In Google Chrome su Windows puoi premere Ctrl + Maiusc + I o fare clic con il tasto destro e selezionare Ispeziona . La finestra presenterà quindi una schermata simile alla seguente.

Ispeziona l'elemento web utilizzando Google Chrome

Un elenco a schede di opzioni allinea la parte superiore della finestra. Di interesse al momento è la scheda Rete . Ciò fornirà dettagli sul traffico HTTP come mostrato di seguito.

Esamina la richiesta web utilizzando Google Chrome

Nell'angolo in basso a destra vediamo le informazioni sulla richiesta HTTP. L'URL è quello che ci aspettiamo, e il "metodo" è una richiesta HTTP "GET". Il codice di stato della risposta è elencato come 200, il che significa che il server ha visto la richiesta come valida.

Sotto il codice di stato si trova l'indirizzo remoto, che è l'indirizzo IP pubblico del server makeuseof.com. Il client ottiene questo indirizzo tramite il protocollo DNS .

La prossima sezione elenca i dettagli sulla risposta. L'intestazione della risposta non contiene solo il codice di stato, ma anche il tipo di dati o contenuto che contiene la risposta. In questo caso, stiamo esaminando "text / html" con una codifica standard. Questo ci dice che la risposta è letteralmente il codice HTML per il rendering del sito web.

Esamina html di risposta alle richieste web utilizzando Google Chrome

Altri tipi di risposte

Inoltre, i server possono restituire oggetti dati come risposta a una richiesta GET, anziché solo HTML per il rendering della pagina Web. L' interfaccia di programmazione dell'applicazione (o API) di un sito Web utilizza in genere questo tipo di scambio.

Consultando la scheda Rete come mostrato sopra, puoi vedere se esiste questo tipo di scambio. Quando si indaga sulla classifica aperta CrossFit viene mostrata la richiesta di compilare la tabella con i dati.

Esamina i dati della richiesta di richiesta web utilizzando Google Chrome

Cliccando sulla risposta, i dati JSON vengono mostrati al posto del codice HTML per il rendering del sito web. I dati in JSON sono una serie di etichette e valori, in un elenco stratificato e delineato.

Controlla la risposta web JSON utilizzando Google Chrome

Analizzare manualmente il codice HTML o passare migliaia di coppie chiave / valore di JSON è molto simile alla lettura di Matrix. A prima vista, sembra incomprensibile. Ci possono essere troppe informazioni per decodificarlo man
ualmente.

Web Scrapers to the Rescue!

Ora, prima di andare a chiedere la pillola blu per uscire da qui, dovresti sapere che non dobbiamo decodificare manualmente il codice HTML! L'ignoranza non è felicità, e questa bistecca è deliziosa.

Un web raschietto può eseguire questi compiti difficili per te. I framework di scraping sono disponibili in Python, JavaScript, Node e in altre lingue. Uno dei modi più semplici per iniziare a fare scraping è usando Python e Beautiful Soup.

Raschiare un sito Web con Python

Per iniziare sono necessarie poche righe di codice, a condizione che Python e BeautifulSoup siano installati. Ecco un piccolo script per ottenere l'origine di un sito Web e lasciare che BeautifulSoup lo valuti.

 from bs4 import BeautifulSoup import requests url = "http://www.athleticvolume.com/programming/" content = requests.get(url) soup = BeautifulSoup(content.text) print(soup) 

Molto semplicemente, stiamo facendo una richiesta GET a un URL e quindi inserendo la risposta in un oggetto. La stampa dell'oggetto visualizza il codice sorgente HTML dell'URL. Il processo è come se andassimo manualmente sul sito Web e facessimo clic su Visualizza sorgente .

In particolare, questo è un sito Web che pubblica ogni giorno gli allenamenti in stile CrossFit, ma solo uno al giorno. Possiamo costruire il nostro raschietto per ottenere l'allenamento ogni giorno, e quindi aggiungerlo a un elenco aggregante di allenamenti. In sostanza, possiamo creare un database storico basato su testo di allenamenti che possiamo facilmente cercare.

La magia di BeaufiulSoup è la possibilità di cercare attraverso tutto il codice HTML utilizzando la funzione findAll () integrata. In questo caso specifico, il sito Web utilizza diversi tag "sqs-block-content". Pertanto, lo script deve scorrere tutti questi tag e trovare quello che ci interessa.

Inoltre, ci sono un certo numero di tag <p> nella sezione. Lo script può aggiungere tutto il testo di ciascuno di questi tag a una variabile locale. Per fare ciò, aggiungi un semplice ciclo allo script:

 for div_class in soup.findAll('div', {'class': 'sqs-block-content'}): recordThis = False for p in div_class.findAll('p'): if 'PROGRAM' in p.text.upper(): recordThis = True if recordThis: program += p.text program += 'n' 

Ecco! Un web raschietto è nato.

Scalare il raschiamento

Esistono due percorsi per andare avanti.

Un modo per esplorare il web scraping è utilizzare strumenti già costruiti. Web Scraper (great name!) Ha 200.000 utenti ed è semplice da usare. Inoltre, Parse Hub consente agli utenti di esportare dati raschiati in Excel e Fogli Google.

Inoltre, Web Scraper fornisce un plug-in di Chrome che consente di visualizzare la modalità di creazione di un sito Web. Meglio di tutti, a giudicare dal nome, è OctoParse , un potente raschietto con un'interfaccia intuitiva.

Infine, ora che conosci lo sfondo del web scraping, sollevare il tuo piccolo raschiatore web per essere in grado di eseguire la scansione e l'esecuzione da solo è un divertente tentativo.

Leggi l'articolo completo: Che cos'è il Web Scraping? Come raccogliere dati dai siti Web

Fonte: Utilizzare