Appunti lezioni Web scraping PDF

Title Appunti lezioni Web scraping
Author Giulia Piccinini
Course Web usability
Institution Università degli Studi di Modena e Reggio Emilia
Pages 4
File Size 130 KB
File Type PDF
Total Downloads 44
Total Views 157

Summary

Appunti Web Usability sulla parte Web Scraping...


Description

WEB SCRAPING Una volta appurato che i dati di interesse per il proprio progetto di data science sono presenti sul Web bisogna procurarseli. Ci sono tre metodi principali per recuperare dati dal Web: •

DOWNLOAD DIRETTO il gestore del sito è un data provider (fornisce i dati) che rende i dati disponibili per il download. Opzioni principali di fornitura: - direttamente o su richiesta - gratuitamente (es. istat) o a pagamento (es. camera di commercio)



INTERROGAZIONE DI UN SERVIZIO WEB È una soluzione pensata per utenti esperti/tecnici. Il gestore del sito è un data provider che offre un servizio web per l'interrogazione diretta machine-to-machine. I servizi web sono realizzati da server web con funzionalità estese che non restituiscono solo semplici pagine web ma anche i dati che ha richiesto il client. La risorsa (dati) è sempre identificata da un indirizzo URL, ma il client non è un browser guidato dai click dell'utente ma un programma scritto da un programmatore. Opzioni principali di fornitura: - gratuitamente (es. istat) o a pagamento (es. camera di commercio)



WEB SCRAPING (sinonimi Web Harvesting, Web Data Extraction, Web Data Mining) i dati vengono estratti direttamente da pagine Web, attraverso la costruzione un agente software (un programma che agisce per noi) in grado di scaricare, processare ed organizzare tramite processi automatizzati i dati del Web e in grado di eseguire questo compito più velocemente e correttamente di un umano. Attenzione! I termini web scraping e web crawling spesso vengono usati come sinonimi ma in realtà: - Web scraping: indica l'estrazione di dati da una pagina web o da un insieme ristretto di pagine (es. un sito o parte di un sito) - Web crawling: indica l’analisi dei contenuti di un’intera rete da parte di un bot che naviga in maniera sistematica con scopo tipicamente di indicizzazione, ossia creazione di indici che riassumano gli aspetti principali per permettere la ricerca e la visualizzazione, è un un processo iterativo (es. bot dei motori di ricerca che vogliono indicizzare il Web o sua parte molto ampia).

WEB SCRAPER è un’estensione del browser Google Chrome che permette di creare potenti scraper con pochi click senza possedere conoscenze approfondite (alcuni siti tipo Amazon costruiscono le proprie pagine in modo da rendere difficile lo scraping). SITEMAP in Web Scraper una sitemap costituisce un progetto. Ogni sitemap è identificata da un nome e da un URL di partenza per le operazioni di raccolta dati. SELETTORI i selettori guidano il processo di raccolta dei dati specificando qual è il processo di scraping (es. che pagine visitare, in che ordine, ecc) e quali dati raccogliere all'interno delle pagine. Tipicamente i siti Web presentano la seguente struttura generale: una homepage che contiene dei link per la navigazione alle altre pagine “secondarie” del sito che contengono le informazioni da scaricare e potrebbero contenere ulteriori link ad altre pagine. Tipicamente una sitemap per scaricare dati da un sito presenta la seguente struttura generale: •

Start url: identifica il link della pagina da cui si vuole far partire il processo di scraping



Link selector: identificano i link delle pagine da visitare (quali pagine visitare)



Text selector: identificano gli elementi delle pagine che si vogliono scaricare (quali dati estrarre)



Selector graph: permette di verificare che la struttura del nostro scraper sia corretta, attraverso una rappresentazione grafica dove Root (start url) = link della pagina da cui iniziare a fare scraping → tot Link selector = aprono pagine da visitare → tot Text selector = raccolgono dati in ogni pagina



Table selector: permette di scaricare dati da tabelle. Si seleziona la tabella selector e il selettore proverà a “indovinare” la riga di intestazione header row selector e le righe contenenti i dati data rows selector, eventualmente l'utente può modificare manualmente queste impostazioni



Espressioni regolari le espressioni regolari sono un metodo molto diffuso in informatica per ricercare ed estrarre in maniera automatica porzioni di testo (o dati) specificando come è fatto questo testo che si sta ricercando. Si ha un testo in ingresso (input) su cui effettuare la ricerca (es.“I comuni dell'Abruzzo sono 305” e si vuole estrarre il numero dei comuni) e una espressione regolare che specifica cosa cercare (es. [0 – 9] + ovvero cerca un numero di una o più cifre). Se la ricerca ha esito positivo si dice che “fa match”, mentre se la ricerca ha esito negativo si dice che “non fa match” o “match vuoto”. Generalmente viene restituito solo il primo match, ma è possibile specificare se ne vogliamo solo uno oppure tutti. - Stringa: una sequenza di caratteri con un ordine prestabilito, se si inverte l'ordine dei caratteri si ottengono due stringhe diverse (es. il testo su cui effettuare la ricerca tecnicamente è una stringa) - Metacaratteri: caratteri speciali che vengono interpretati in modo "non letterale" dal meccanismo delle espressioni regolari (es. non viene cercato il . in sé ma qualsiasi carattere) - Espressione Regolare: una stringa costituita da caratteri (es. lettere, numeri, simboli di punteggiatura, ecc.) e metacaratteri

Regole per costruire le espressioni regolari (possibile sperimentare nel sito https://regexr.com/) - PUNTO . fa match con qualsiasi carattere es. se si scrive l'espressione regolare 13.3 (significa un qualsiasi carattere al posto del punto) in un testo fa match con 13a3, 1303 e non fa match con 13 - ASTERISCO * fa match con qualsiasi numero di ripetizioni incluso 0 del carattere che lo precede es. se si scrive l'espressione regolare 11*33 (significa carattere 1 ripetuto zero o più volte) in un testo fa match con 1133, 11133, 111133 e non fa match con 11333 - PUNTO INTERROGATIVO ? fa match con 0 o 1 ripetizioni del carattere precedente es. se si scrive l'espressione regolare cort?o (significa carattere t ripetuto zero o una volta) in un testo fa match con coro e corto - SEGNO PIÙ + fa match con 1 o più (non 0) ripetizioni della espressione regolare precedente o con l'ultima cifra solo se c'è prima tutta l'espressione es. se si scrive l'espressione regolare 10+ (significa 10 o 0 dopo 10 ripetuto una o più volte) in un testo fa match con 10, 1010, 100 e non fa match con 110 - PARENTESI QUADRE […] sono utilizzate per fare match con un sottoinsieme di caratteri [xyz] fa match con il carattere x, oppure y, oppure z [c-n] fa match con qualsiasi carattere fra c ed n compresi [a-zA-Z0-9] fa match con qualsiasi carattere afanumerico (lettere maiusc, minusc e numeri) [0-9]* fa match con qualsiasi stringa di numeri (numero tra 0 e 9 ripetuto zero o più volte) [Yy][Ee][Ss] fa match con yes, Yes, YES, yEs e non fa match con sey [^0-9] fa match con qualsiasi carattere non numerico (non un carattere compreso tra 0 e 9) il caret ^ ha significato di negazione “non” I metacaratteri dentro alle parentesi quadre […] perdono il loro significato speciale - PARENTESI GRAFFE {...} sono utilizzate per indicare il numero di ripetizioni del carattere precedente es. se si scrive l'espressione regolare [0-9]{5} (significa un numero tra 0 e 9 compresi ripetuto cinque volte) in un testo fa il match con tutti i numeri a 5 cifre - PARENTESI TONDE (…) sono utilizzate per raggruppare espressioni regolari es. se si scrive l'espressione regolare (re)* (significa re ripetuto zero o più volte) in un testo fa fa match con “” (cioè testo vuoto), re, rere, rerere e non fa match con ree - BARRA VERTICALE | è utilizzata per indicare un'alternativa es. se si scrive l'espressione regolare (bio|psico)logia (significa bio+logia oppure psico+logia) in un testo fa match con biologia e psicologia e non fa match con geologia - BACKSLASH \ è utilizzato per far sì che all'interno di una espressione regolare un metacarattere venga interpretato letteralmente questa operazione che invoca un’interpretazione alternativa del carattere che lo segue si chiama escaping. Il backslash è quindi detto carattere di escape delle espressioni regolari. es. se si scrive l'espressione regolare \? (significa cerca letteralmente il punto interrogativo) in un testo fa match con ?

Su Web Scraper è possibile utilizzare le espressioni regolari scrivendole nel campo Regex del Text selector che identifica il testo da cui si vogliono estrarre i dati. Attenzione! da ogni stringa Web Scraper estrarrà solo il primo match, non tutti! •

Element selector: all'interno di pagine che contengono diversi elementi (es. pagina e-commerce) permette di selezionare i contenitori che raccolgono le informazioni relative ad ogni elemento e di aggiungere dei sottoselettori per estrarre i diversi dati (es. nome, prezzo, descrizione, ecc)



Element scroll down selector: è un’estensione del precedente element selector che in più permette di fare scroll down della pagina più volte fino a che gli elementi non sono stati tutti caricati.



Pagine con link di navigazione: all'interno di molti siti la cosiddetta paginazione è realizzata attraverso link di paginazione (link ipertestuali). In questo caso, quando si sfogliano le pagine, l'URL presente nella barra degli indirizzi cambia perché viene caricata una nuova pagina. Per poter scaricare dati da siti che utilizzano link di paginazione è necessario usare un link selector che apra tutte le pagine all'interno di una pagina (es. pagine prodotto all'interno di pagina 1) e agganciarvi un link di paginazione per passare da una pagina alla successiva (es. pagina 1, 2, ecc)



Pagine con navigazione Ajax: all'interno di molti siti la paginazione ed altri comportamenti interattivi sono realizzati con una tecnica chiamata Ajax che fa uso di Javascript per consentire l'aggiornamento dinamico di una pagina Web senza esplicito ricaricamento di questa da parte dell'utente. In questo caso, quando si sfogliano le pagine, l’URL presente nella barra degli indirizzi non cambia perché Ajax non carica una nuova pagina ma la modifica in maniera dinamica sostituendo i dati. Per poter scaricare dati da siti sviluppati con la tecnologia Ajax è necessario utilizzare il selettore element click che interagisce con la pagina web simulando i click dell’utente per aggiornare la pagina e caricare nuovi elementi.

Web Scraper ha alcuni limiti, ad esempio è difficile scaricare file (es. pdf, video, ecc.) ed è piuttosto rigido (es. non possibile impostare comportamenti diversi a seconda di specifiche condizioni), ecc... ma con quanto visto siamo comunque in grado di estrarre dati da molti (ma non tutti) siti Web. Per sviluppare web scraper più sofisticati esistono altre due possibilità: strumenti a pagamento simili a Web Scaper ma più evoluti es. WebStorm, Data Collector, ParseHub, ecc), oppure strumenti gratuiti tecnicamente sono framework e librerie - che facilitano la programmazione di Web Scraper ma richiedono forti competenze tecniche (es. Beautiful Soap o Scrapy)...


Similar Free PDFs