Web scraping

Ilweb scraping(detto ancheweb harvestingoweb data extraction) è unatecnicainformaticadiestrazione di datida unsito webper mezzo diprogrammisoftware. Di solito, tali programmi simulano la navigazione umana nelWorld Wide Webutilizzando l'Hypertext Transfer Protocol(HTTP) o attraversobrowser, comeInternet ExploreroMozilla Firefox.
Strettamente correlato all'indicizzazionedei sitiInternet, tale tecnica è attuata mediante l'uso dibotdalla maggior parte deimotori di ricerca. D'altro canto, il web scraping si concentra di più sulla trasformazione didatinon strutturati presenti in Rete, di solito in formatoHTML, inmetadatiche possono essere memorizzati e analizzati in locale in undatabase. Il web harvesting è altresì affine allaweb automation, che consiste nella simulazione della navigazione umana in Rete attraverso l'uso di software percomputer.
Esistono metodi utilizzati da alcuni siti web per prevenire il web scraping, come ad esempio rilevare e impedire aibotla visualizzazione delle loro pagine. Per aggirare il problema esistono sistemi di web scraping che si affidano a tecniche comeDOMparsing,Computer Visionenatural language processingper simulare la navigazione web umana. Grazie a queste tecniche è possibile raccogliere i contenuti delle pagine web per l'analisi offline.Può essere usato per confrontare prezzi online, monitorare dati meteorologici, rilevare modifiche in un sito internet, nellaricerca scientifica, per ilweb mashupe ilweb data integration.
Il web scraping è il processo tramite cui si estraggono o si collezionano dati nelWorld Wide Webe, una volta ottenuti questi dati, possono essere utilizzati per diversi scopi. Le tecniche utilizzabili dipenderanno dai mezzi e dalle risorse a disposizione. Si parte da soluzioni dette "ad-hoc", che richiedono l'intervento dell'uomo per selezionare le informazioni utili, fino ad arrivare a sistemi completamente automatizzati, che attraverso ilmachine learningsgravano l'utente da alcuni compiti.
Nemmeno la miglior tecnica di web scraping può a volte rimpiazzare l'esame dell'occhio umano e il copia e incolla manuale. Per certi casi questa è l'unica soluzione possibile, visto che alcune pagine web impediscono la raccolta automatica di dati.
Esistono svariati software e tool che sono in grado di riconoscere automaticamente la struttura di una pagina web, senza che sia necessario alcun intervento umano per l'estrazione dei dati. Alcuni di questi software sono in grado di estrarre informazioni direttamente dalleAPI.
Svariati siti web sono costituiti da pagine web generate automaticamente. La fonte da cui queste pagine ricavano informazioni sono per lo più grandi database. I dati di categorie simili tra loro vengono organizzate in pagine otemplatecomuni, per essere reperite con maggior facilità. I software che permettono tramite la rilevazione dei template l'estrazione di dati dello stesso tipo prendono il nome diwrapper.
Utilizzando una combinazione dimachine learningecomputer visionsi stanno sviluppando tecniche che permettono di analizzare ed estrarre dati da pagine web seguendo modelli simili. Esse quindi simuleranno il comportamento di un utente in carne ed ossa. In questa maniera il lavoro richiesto ai software di web scraping verrà ridotto e si otterranno informazioni più pertinenti.
Per modificare o ispezionare una pagina web, vengono analizzati gli script lato client, che successivamente verranno organizzati in unDOM tree. DOM è utilizzato principalmente per recuperare informazioni da documenti con una strutturazione non standard, cioè dove gli elementi vengono trovati in modo casuale
Infine (attraverso un browser web completo) sarà possibile interrogare e recuperare informazioni dall'albero.
Nella maggior parte delle pagine web sono presenti annotazioni semantiche (o markup) emetadatiche possono essere facilmente reperiti e utilizzati per trovare frammenti di dati specifici. Questo potrebbe essere un semplice caso di DOM parsing se i metadati sono incorporati solamente nella pagina web. In caso contrario le annotazioni organizzate in diversi livelli vengono archiviate e gestite separatamente dalle pagine web, in modo tale che gli scraper possano recuperare le istruzioni e i dati da questo livello prima di eseguire lo scraping delle pagine.
Ci sono diverse compagnie che hanno sviluppato piattaforme verticali specifiche per la raccolta. Essi creano e monitorano una moltitudine dibotper specifiche verticali, senza "human in the loop" (nessun coinvolgimento umano diretto), e senza lavoro relativo ad un sito specifico. La robustezza della piattaforma è misurata tramite la qualità delle informazioni che reperisce (numero di campi) e dalla sua scalabilità (quanto velocemente può scalare da centinaia a migliaia di siti). Questa scalabilità viene utilizzata nella maggior parte delle volte per indirizzare la lunga coda di siti che gli aggregatori comuni trovano complicati o troppo laboriosi per la raccolta dei contenuti.
Approccio semplice ma efficace per estrarre informazioni dalle pagine web. Può essere usato tramite il comando "grep" da riga di comando nei sistemiUNIXo attraverso le funzioni di expression-matching comuni deilinguaggi di programmazione(per esempioPerloPython).
Il web scraping è una tecnica che permette l'estrazione di informazioni dai siti web; spesso include la trasformazione di dati non strutturati di pagine web indatabaseper l'analisi o il riutilizzo del contenuto. Il riutilizzo può essere sfruttato sul sito web dove abbiamo reperito le informazioni o per operazioni commerciali. Nella maggior parte dei casi, ibot, che costituiscono il 46% del traffico web, sono implementati da individui per eseguire il web scraping ad un ritmo molto più elevato rispetto a quello che potrebbero mai avere gli umani.
Attraverso l'analisi delle principali piattaforme e servizi di web scraping, Distil Networks ha sottolineato come la democratizzazione del web scraping permetta agli utenti di rubare senza problemi informazioni sensibili sul web.
"Se i tuoi contenuti possono essere visualizzati sul Web, possono essere 'raschiati'"(originale:"If your content can be viewed on the web, it can be scraped")
Il 38% delle aziende che si dedicano al web scraping lo fa per ottenere contenuti. Poiché grazie alla mole di dati facilmente acquisibile è possibile effettuare una vasta gamma di operazioni come, il confronto prezzi, il monitoraggio dei dati meteorologici e svariate ricerche. I servizi di Web scraping costano solo 3,33 $ all'ora. In media un progetto di web scraping costa all'incirca 135 $. Il web scraper medio guadagna58000$all'anno, mentre lavorando in un'azienda medio-grande specializzata nel web scraping si può arrivare fino a128000$all'anno.
L'amministratore di un sito web può utilizzare vari metodi per rallentare o fermare un bot. Alcuni di questi sono:
Questi sono alcuni dei software o tool disponibili per personalizzare le soluzioni di web scraping: