Python Web Scraping - Introduzione
Il web scraping è un processo automatico di estrazione di informazioni dal web. Questo capitolo ti darà un'idea approfondita del web scraping, del suo confronto con il web crawling e del motivo per cui dovresti optare per il web scraping. Imparerai anche i componenti e il funzionamento di un web scraper.
Cos'è il Web Scraping?
Il significato del dizionario della parola "rottamazione" implica ottenere qualcosa dal web. Qui sorgono due domande: cosa possiamo ottenere dal web e come ottenerlo.
La risposta alla prima domanda è ‘data’. I dati sono indispensabili per qualsiasi programmatore e il requisito fondamentale di ogni progetto di programmazione è la grande quantità di dati utili.
La risposta alla seconda domanda è un po 'complicata, perché ci sono molti modi per ottenere dati. In generale, possiamo ottenere dati da un database o file di dati e altre fonti. Ma cosa succede se abbiamo bisogno di una grande quantità di dati disponibili online? Un modo per ottenere questo tipo di dati è cercare manualmente (facendo clic in un browser web) e salvare (copia-incolla in un foglio di calcolo o in un file) i dati richiesti. Questo metodo è piuttosto noioso e richiede tempo. Un altro modo per ottenere tali dati è usareweb scraping.
Web scraping, chiamato anche web data mining o web harvesting, è il processo di costruzione di un agente in grado di estrarre, analizzare, scaricare e organizzare automaticamente informazioni utili dal web. In altre parole, possiamo dire che invece di salvare manualmente i dati dai siti Web, il software di web scraping caricherà ed estrarrà automaticamente i dati da più siti Web secondo le nostre esigenze.
Origine del Web Scraping
L'origine del web scraping è lo screen scrapping, utilizzato per integrare applicazioni non basate sul web o applicazioni Windows native. Originariamente lo screen scraping era usato prima dell'ampio utilizzo del World Wide Web (WWW), ma non poteva aumentare il WWW espanso. Ciò ha reso necessario automatizzare l'approccio dello screen scraping e la tecnica chiamata‘Web Scraping’ è venuto all'esistenza.
Web Crawling v / s Web Scraping
I termini Web Crawling e Scraping sono spesso usati in modo intercambiabile poiché il loro concetto di base è estrarre i dati. Tuttavia, sono diversi l'uno dall'altro. Possiamo capire la differenza fondamentale dalle loro definizioni.
La scansione del Web è fondamentalmente utilizzata per indicizzare le informazioni sulla pagina utilizzando i bot noti anche come crawler. È anche chiamatoindexing. D'altra parte, il web scraping è un modo automatizzato di estrarre le informazioni utilizzando i bot noti come scraper. È anche chiamatodata extraction.
Per comprendere la differenza tra questi due termini, esaminiamo la tabella di confronto fornita di seguito:
Scansione web | Web scraping |
---|---|
Si riferisce al download e all'archiviazione dei contenuti di un gran numero di siti web. | Si riferisce all'estrazione di singoli elementi di dati dal sito Web utilizzando una struttura specifica del sito. |
Per lo più fatto su larga scala. | Può essere implementato su qualsiasi scala. |
Fornisce informazioni generiche. | Fornisce informazioni specifiche. |
Utilizzato dai principali motori di ricerca come Google, Bing, Yahoo. Googlebot è un esempio di crawler web. | Le informazioni estratte utilizzando il web scraping possono essere utilizzate per replicare in qualche altro sito Web o possono essere utilizzate per eseguire l'analisi dei dati. Ad esempio, gli elementi dei dati possono essere nomi, indirizzo, prezzo ecc. |
Usi di Web Scraping
Gli usi e le ragioni per utilizzare il web scraping sono infiniti quanto gli usi del World Wide Web. I web scrapers possono fare qualsiasi cosa come ordinare cibo online, scansionare il sito web di shopping online per te e acquistare il biglietto di una partita nel momento in cui sono disponibili, ecc. Proprio come può fare un essere umano. Alcuni degli usi importanti del web scraping sono discussi qui:
E-commerce Websites - I web scrapers possono raccogliere i dati relativi al prezzo di un prodotto specifico da vari siti di e-commerce per il loro confronto.
Content Aggregators - Il web scraping è ampiamente utilizzato dagli aggregatori di contenuti come gli aggregatori di notizie e gli aggregatori di lavoro per fornire dati aggiornati ai propri utenti.
Marketing and Sales Campaigns - I web scrapers possono essere utilizzati per ottenere dati come e-mail, numero di telefono ecc. Per campagne di vendita e marketing.
Search Engine Optimization (SEO) - Il web scraping è ampiamente utilizzato da strumenti SEO come SEMRush, Majestic ecc. Per indicare alle aziende come si posizionano per le parole chiave di ricerca che sono importanti per loro.
Data for Machine Learning Projects - Il recupero dei dati per i progetti di machine learning dipende dal web scraping.
Data for Research - I ricercatori possono raccogliere dati utili ai fini del loro lavoro di ricerca risparmiando tempo grazie a questo processo automatizzato.
Componenti di un Web Scraper
Un raschiatore è costituito dai seguenti componenti:
Modulo web crawler
Un componente molto necessario del web scraper, il modulo web crawler, viene utilizzato per navigare nel sito Web di destinazione effettuando richieste HTTP o HTTPS agli URL. Il crawler scarica i dati non strutturati (contenuti HTML) e li passa all'estrattore, il modulo successivo.
Estrattore
L'estrattore elabora il contenuto HTML recuperato ed estrae i dati in un formato semistrutturato. Questo è anche chiamato come modulo parser e utilizza diverse tecniche di analisi come espressione regolare, analisi HTML, analisi DOM o intelligenza artificiale per il suo funzionamento.
Modulo di trasformazione e pulizia dei dati
I dati estratti sopra non sono adatti per un pronto utilizzo. Deve passare attraverso un modulo di pulizia in modo che possiamo usarlo. A questo scopo possono essere utilizzati metodi come la manipolazione delle stringhe o le espressioni regolari. Notare che anche l'estrazione e la trasformazione possono essere eseguite in un unico passaggio.
Modulo di archiviazione
Dopo aver estratto i dati, dobbiamo archiviarli secondo le nostre esigenze. Il modulo di archiviazione produrrà i dati in un formato standard che può essere archiviato in un database o in formato JSON o CSV.
Lavorazione di un Web Scraper
Il web scraper può essere definito come un software o uno script utilizzato per scaricare il contenuto di più pagine web ed estrarre dati da esso.
Possiamo capire il funzionamento di un web scraper in semplici passaggi come mostrato nello schema sopra riportato.
Passaggio 1: download di contenuti dalle pagine Web
In questa fase, un web scraper scaricherà i contenuti richiesti da più pagine web.
Passaggio 2: estrazione dei dati
I dati sui siti web sono HTML e per lo più non strutturati. Quindi, in questo passaggio, web scraper analizzerà ed estrarrà i dati strutturati dai contenuti scaricati.
Passaggio 3: archiviazione dei dati
Qui, un web scraper memorizzerà e salverà i dati estratti in qualsiasi formato come CSV, JSON o nel database.
Passaggio 4: analisi dei dati
Dopo che tutti questi passaggi sono stati completati con successo, il web scraper analizzerà i dati così ottenuti.