Download Strumento per l'estrazione semi-automatica e il confronto di dati da pagine web PDF

TitleStrumento per l'estrazione semi-automatica e il confronto di dati da pagine web
LanguageEnglish
File Size1.3 MB
Total Pages64
Table of Contents
                            Sommario
Ringraziamenti
Indice
Elenco delle figure
Elenco delle tabelle
1 Introduzione
	1.1 NetStorming S.r.l.
	1.2 Obiettivi dell'attività di stage
2 Sistemi per l'estrazione di dati web
	2.1 Definizione
	2.2 Contesto storico
	2.3 Fondamenti scientifici
		2.3.1 Fondamenti formali e semantica della data extraction
		2.3.2 Metodi per la generazione di wrapper
		2.3.3 Architettura
		2.3.4 Sistemi commerciali per la generazione di wrapper
	2.4 Applicazioni chiave
		2.4.1 Web market monitoring
		2.4.2 Web process integration
		2.4.3 Mashup
	2.5 Direzioni future
		2.5.1 Generic web wrapping
		2.5.2 Auto-adapting wrappers
		2.5.3 Wrapping da layout visuali
		2.5.4 Estrazione di dati da file non HTML
		2.5.5 Imparare a gestire interazioni web
		2.5.6 Comprensione e mapping dei form web
3 Descrizione del progetto
	3.1 Introduzione
		3.1.1 Extractor
		3.1.2 Comparator
		3.1.3 Web service
4 Analisi dei requisiti
	4.1 Ricerca di disponibilità
	4.2 Normalizzazione dei dati
	4.3 Memorizzazione dei dati estratti
	4.4 Selezione dei dati raccolti
	4.5 Ordinamento della selezione di dati
	4.6 Facilità di adattamento a diversi siti web
	4.7 Facilità d'uso dell'estrattore
5 Progettazione
	5.1 Strumenti e tecnologie
		5.1.1 Linguaggi di programmazione
		5.1.2 Strumenti software
		5.1.3 Altri strumenti e librerie
	5.2 Pianificazione
		5.2.1 Ciclo di vita del software
	5.3 Progettazione
		5.3.1 Struttura della base di dati
		5.3.2 Modelli e interazione con il database
		5.3.3 Web service
		5.3.4 Comparator
		5.3.5 Selezione dei dati raccolti
		5.3.6 Ordinamento selezione di dati
		5.3.7 Extractor
		5.3.8 Ricerca di disponibilità
		5.3.9 Normalizzazione dei dati
		5.3.10 Memorizzazione dei dati estratti
		5.3.11 Facilità di adattamento a diversi siti web
6 Verifica e validazione
7 Conclusioni
	7.1 Greasemonkey oggi
	7.2 Raggiungimento degli obiettivi
A Metodologia Agile
	A.1 Principi
	A.2 Metodologia
	A.3 Pratiche
Glossario
Acronimi
Bibliografia
                        
Document Text Contents
Page 1

Università degli Studi di Padova

Dipartimento di Matematica

Corso di Laurea in Informatica

Strumento per l’estrazione semi-automatica e
il confronto di dati da pagine web

Tesi di laurea triennale

Relatore

Prof. Fabio Aiolli

Laureando

Giovanni Cappellotto

Anno Accademico 2014-2015

Page 2

Giovanni Cappellotto: Strumento per l’estrazione semi-automatica e il confronto di
dati da pagine web, Tesi di laurea triennale, c
Ottobre 2014.

Page 32

22 CAPITOLO 5. PROGETTAZIONE

• Firefox

• Firebug

• GreaseMonkey

Apache HTTP Server

Apache HTTP Server, o più comunemente Apache, è un server web con architettura
modulare originariamente basato su NCSA HTTPd. Apache, sviluppato e mantenuto
da una comunità di sviluppatori patrocinata dalla Apache Software Foundation, dalla
seconda metà degli anni novanta è uno dei server web di maggior successo.

MySQL

MySQL è attualmente il secondo RDBMS (Relational DataBase Management System)
open-source più largamente utilizzato al mondo. In congiunzione con Apache, PHP e
Linux forma il famigerato stack software per applicazioni web LAMP (Linux, Apache,
PHP, MySQL).

Firefox

Mozilla Firefox, conosciuto più semplicemente come Firefox, è un browser web open-
source sviluppato dalla Mozilla Foundation. Questo strumento è stato scelto per la
sua duttilità ed aderenza agli standard. Firefox permette l’aggiunta di funzionalità per
mezzo di estensioni, requisito fondamentale per la riuscita del progetto.

Firebug

Questa estensione per Firefox permette di accedere a funzionalità che facilitano il
debugging, la modifica e il monitoraggio di CSS, HTML, DOM, XHR e JavaScript
di ogni sito web. Lo strumento, rilasciato sotto licenza BSD e inzialmente scritto nel
gennaio 2006 da Joe Hewitt, uno dei creatori originali di Firefox, è stato utilizzato
principalmente nella fase di personalizzazione del wrapper grazie alle sue funzioni di
analisi del DOM e di debugging.

Greasemonkey

Greasemonkey è un’estensione per Firefox che permette all’utente di installare script
che fanno modifiche on-the-fly ai contenuti delle pagine web prima o dopo il caricamento
(augmented browsing). Questo strumento permette di eseguire il wrapper rendendo
disponibile un ambiente per l’esecuzione di script JavaScript all’interno dello stesso
contesto della pagina web contenente i dati che devono essere estratti.

5.1.3 Altri strumenti e librerie

XML

XML è un linguaggio di markup che viene utilizzato per codificare i messaggi scambiati
tra Extractor, Comparator e Web service.

Page 33

5.2. PIANIFICAZIONE 23

XPath

XPath è un linguaggio di interrogazione per selezionare nodi all’interno di un documento
XML. Le query XPath vengono generate selezionando, col supporto di Firebug, i nodi
prescelti per poi andare a far parte della personalizzazione del wrapper template
associata al sito web obiettivo.

jQuery

Rilasciata inizialmente nel 2006 da John Resig, jQuery è una libreria JavaScript cross-
platform progettata per semplificare lo sviluppo di script client-side. È la libreria
JavaScript attualmente più usata nel web e nel contesto del progetto viene utilizzata
sia nel wrapper, per la selezione e la manipolazione del DOM, che nel front-end
dell’applicazione di confronto, per facilitare la comunicazione Ajax con il web service e
per gestire l’ordinamento dei dati.

5.2 Pianificazione

La pianificazione del progetto è stata programmata con l’aiuto del tutor aziendale,
Matteo Giacomazzi. Prima di iniziare con la vera progettazione e realizzazione delle
funzionalità indicate nel capitolo precedente, è stato dedicato del tempo allo studio della
documentazione delle librerie e degli strumenti, in modo da avere un’idea più chiara di
come agire. Questo studio è stato fatto sia con l’utilizzo della documentazione fornita,
sia con la realizzazione di un piccolo prototipo di script Greasemonkey. Lo scopo
dello script consisteva semplicemente dell’injection di una risorsa esterna nella pagina
web visitata e nella manipolazione del DOM per aggiungere un elemento in overlay.
Questo piccolo programma d’esempio è stato molto utile per capire le potenzialità
dello strumento e per individuare eventuali problemi (e.g. conflitti nelle regole CSS tra
i fogli di stile dello script e quelli della pagina web ospitante).

5.2.1 Ciclo di vita del software

Per quanto riguarda il ciclo di vita adottato per il progetto, la scelta è stata pressoché
obbligata. Trattandosi di uno studio dove non era disponibile precedente esperien-
za per valutare il lavoro da svolgere, è stato necessario focalizzare l’attenzione più
sulla riuscita del progetto che non sulla progettazione. Superfluo dire che non era
possibile progettare nei minimi dettagli il lavoro da svolgere dal momento che non
si conoscevano le potenzialità degli strumenti e delle librerie con cui si andava a lavorare.

Per questo motivo si è adottato il metodo Agile programming [2]. Si tratta di un
ciclo di vita in cui il committente viene coinvolto il più possibile, in modo da correggere
velocemente il progetto in base alle esigenze. Questo metodo ben si adatta allo stage
svolto, dove ogni singola funzionalità richiesta poteva essere considerata come un
piccolo progetto a sé stante, e dove si lavorava a stretto contatto con il committente,
in questo caso personificato dallo stesso tutor aziendale.

La scelta di quali funzionalità implementare prima delle altre è stata fatta con
l’accortezza di iniziare da quelle più semplici per poi arrivare a quelle più complesse,
stando attenti però che non fossero implementate prima delle funzionalità che richiede-
vano l’esistenza di altre. Anche questo approccio è stato dettato dalla natura dello

Page 63

Bibliografia

Riferimenti bibliografici
[3] V. Anupam et al. «Automating web navigation with the WebVCR». In: Computer

Networks 33 (1-6 2000), pp. 503–517 (cit. a p. 4).

[4] R. Baumgartner, S. Flesca e G. Gottlob. «Visual web information extraction
with Lixto». In: VLDB (2001) (cit. a p. 4).

[6] V. Crescenzi, G. Mecca e P. Merialdo. «RoadRunner: Towards automatic data
extraction from large Web sites». In: VLDB (2001) (cit. a p. 4).

[7] O. Etzioni et al. «Web-scale information extraction in KnowItAll: (preliminary
results)». In: WWW (2004) (cit. a p. 10).

[9] W. Gatterbauer et al. «Towards domain-independent information extraction
from web tables». In: WWW (2007) (cit. a p. 11).

[10] G. Gottlob e C. Koch. «A formal comparison of visual web wrapper generators».
In: SOFSEM (2006) (cit. a p. 5).

[11] G. Gottlob e C. Koch. «Monadic datalog and the expressive power of languages
for web information extraction». In: JACM 51 (1 2002), pp. 74–113 (cit. a p. 5).

[16] N. Kushmerick, D. S. Weld e R.B. Doorenbos. «Wrapper induction for information
extraction». In: IJCAI (1997) (cit. a p. 4).

[17] A.H.F. Laender, B.A. Ribeiro-Neto e A.S. da Silva. «DEByE - Data extraction
by example». In: Data and Knowledge Engineering 40 (2 2000), pp. 121–154
(cit. a p. 4).

[18] B. Liu, R.L. Grossman e Y. Zhai. «Mining web pages for data records». In: IEEE
Intelligent Systems 19 (6 2004), pp. 49–55 (cit. a p. 10).

[19] L. Liu, C. Pu e W. Han. «XWRAP: An XML-enabled wrapper construction
system for web information sources». In: ICDE (2000) (cit. a p. 4).

[21] I. Muslea, S. Minton e C. Knoblock. «A hierarchical approach to wrapper
induction». In: Autonomous Agents and Multi-Agent Systems 4 (1/2 2001),
pp. 93–114 (cit. alle pp. 4, 5).

[22] A. Pan et al. «The Denodo data integration platform». In: VLDB (2002) (cit. a
p. 4).

53

Page 64

54 BIBLIOGRAFIA

[25] A. Sahuguet e F. Azavant. «Building intelligent web applications using lightweight
wrappers». In: Data and Knowledge Engineering 36 (3 2001), pp. 283–316 (cit. a
p. 4).

Siti Web consultati
[1] Agile Alliance. url: http://www.agilealliance.org/ (cit. a p. 45).

[2] Agile Manifesto. url: http://agilemanifesto.org/iso/it/ (cit. alle pp. 23,
45).

[5] Connotate. url: http://www.connotate.com/ (cit. a p. 4).

[8] Jesse James Garrett. Ajax: A New Approach to Web Applications. 2005. url:
http://www.adaptivepath.com/ideas/ajax-new-approach-web-applications/
(cit. a p. 29).

[12] Greasemonkey manual: Installing scripts. url: http://wiki.greasespot.net/
Greasemonkey_Manual:Installing_Scripts (cit. a p. 31).

[13] GreaseSpot Wiki: User script. url: http://wiki.greasespot.net/User_
script (cit. a p. 31).

[14] jQuery Learning Center: How to Create a Basic Plugin. url: http://learn.
jquery.com/plugins/basic-plugin-creation/ (cit. a p. 30).

[15] Kapow Technologies. url: http://www.kapowtech.com/ (cit. a p. 4).

[20] Lixto Software Company. url: http://www.lixto.com/ (cit. a p. 4).

[23] PHPUnit. url: http://phpunit.de/ (cit. a p. 41).

[24] QL2 Software. url: http://www.ql2.com/ (cit. a p. 4).

[26] Smarty Documentation - What is Smarty? url: http://www.smarty.net/
docs/en/what.is.smarty.tpl (cit. a p. 28).

[27] The Chromium Projects - User Scripts. url: http://www.chromium.org/
developers/design-documents/user-scripts (cit. a p. 43).

http://www.agilealliance.org/
http://agilemanifesto.org/iso/it/
http://www.connotate.com/
http://www.adaptivepath.com/ideas/ajax-new-approach-web-applications/
http://wiki.greasespot.net/Greasemonkey_Manual:Installing_Scripts
http://wiki.greasespot.net/Greasemonkey_Manual:Installing_Scripts
http://wiki.greasespot.net/User_script
http://wiki.greasespot.net/User_script
http://learn.jquery.com/plugins/basic-plugin-creation/
http://learn.jquery.com/plugins/basic-plugin-creation/
http://www.kapowtech.com/
http://www.lixto.com/
http://phpunit.de/
http://www.ql2.com/
http://www.smarty.net/docs/en/what.is.smarty.tpl
http://www.smarty.net/docs/en/what.is.smarty.tpl
http://www.chromium.org/developers/design-documents/user-scripts
http://www.chromium.org/developers/design-documents/user-scripts

Similer Documents