Ricercare un annuncio non è mai stato tanto semplice e veloce.

Slides:



Advertisements
Presentazioni simili
Corso di WebMaster Mercoledì 14 Novembre. Parte I – Introduzione al Corso Lezione 1: Presentazione Descrizione Breve del Corso Semplice Valutazione.
Advertisements

Interazione col DB Per interagire con una base dati da una pagina PHP occorre procedere come segue: Eseguire la connessione al DBMS MySQL in ascolto;
Implementazione di TRIP ai LNF Commissione Calcolo e Reti 31 maggio 2007 Massimo Pistoni.
Programma delle lezioni Generalità sugli impianti(1) √ Generalità sugli impianti(1) √ Produzione dell’energia elettrica(1) √ Produzione dell’energia elettrica(1)
1 Gruppo di lavoro Siti web Cristina Paulon CIS Maldura - Master in giornalismo Padova, 19 luglio 2007 C. Paulon - CIS Maldura - Master in giornalismodreams.
FlowLineXL Flowline XL e' il sistema integrato per la gestione del recruitment tramite web per enti e societa' di selezione Fornito in modalita' ASP (application.
PGDay 2009 FSGateway Ing. Torello Querci Resp. Architetture SW - Negens S.r.l. 4 Dicembre 2009, Pisa.
IDEAZIONE E REALIZZAZIONE DI UN GIORNALINO PER RAGAZZI.
Programma di lealtà con consegna automatica. Programma di lealtà ADR con consegna automatica Nell'ambito del programma di lealtà ADR con consegna automatica.
Dove vuoi andare questa estate?
Visual Analytics Dashboard
Corso per Webmaster base
Progetto ‘My FOODPEDIA’
© 2007 SEI-Società Editrice Internazionale, Apogeo
Fruit World Integrazione Dati sul Web 2016/2017
La APP di Italia Nostra per i Beni Culturali
Piattaforma per industrie stampaggio
Numeri e grafici per capire la salute
Scuola.
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Integrazione dati sul web
Integrazione dati sul web
<Nome del gruppo di lavoro>
Alternanza scuola/lavoro
Tutor: prof. Franco Gualtieri 2° parte
EasyGraph Dynamic web-based dashboard
UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA
Applicazione web basata su web service e web socket
Dati in rete Appunti.
FlowLineXL Flowline XL e' il sistema integrato per la gestione del recruitment tramite web per enti e societa' di selezione Fornito in modalita' ASP (application.
Real-time 3D reconstruction using multiple depth cameras
Tutorial help.ebsco.com.
PHP Argomenti avanzati Alberto Ferrari.
Sostenere lo sviluppo, guidare la crescita.
Corso di Ingegneria del Web e Applicazioni A A
Job Application Monitoring (JAM)
Organizzazione fisica
Asynchronous JavaScript and XML
Consultazione delle carte da gioco collezionabili
SAS® OnDemand for Academics SAS Studio
Sviluppo di un'applicazione web per l'utilizzo del framework SparkER
Studente : Andrea Cassarà Classe: 5AII A.S. 2014/2015 Link Sito
Andrea Paladin, PM CINECA
Laboratorio linguistico L’articolo di giornale
Laboratorio linguistico L’articolo di giornale
Consultare un corpus con AntConc
Le norme editoriali Come si scrive e presenta la tesi?
Gli schemi concettuali
Definizione di Mappa Concettuale
Il test di lingua italiana: il procedimento e i soggetti coinvolti
Progetto di Tecnologie Web 2014/2015 THERMOWEB
Il test di lingua italiana: il procedimento e i soggetti coinvolti
Codicfiche Interi Complemento alla base.
RELATORE: CANDIDATO: SONIA BERGAMASCHI FRANCESCO RIZZO
La relazione - Giulio Colecchia
La gestione delle Entrate ( Riscossione ed Inesigibilità )
Il test di lingua italiana: il procedimento e i soggetti coinvolti
SQL per la modifica di basi di dati
ADO Per gestire i database con tecnologia ASP si utilizzano strumenti ADO (ActiveX Data Objects): un'architettura che fornisce oggetti.
Richiesta Accreditamento dei Soggetti Attuatori
Free .NET Hosting - somee.com
BLOGGALO.
Esercitazione sulle modalità
OpenLayers Client di mappe “non solo” WMS
* 07/16/96 Sez. 2: Ordinamento La consultazione di banche dati è sempre più cruciale in tutte le applicazioni dell’Informatica. Se vogliamo consultare.
UNIVERSITÀ DI MODENA E REGGIO EMILIA
Strategie di progetto Si possono utilizzare le strategie tipiche dello sviluppo di un processo di ingegnerizzazione (es. ingegneria del software). Strategie.
Portale Acquisti Alperia
Il ciclo del progetto la definizione dello SdF
Presentazione del software SEMAFORO
Transcript della presentazione:

Ricercare un annuncio non è mai stato tanto semplice e veloce. CrawlerOfAds Ricercare un annuncio non è mai stato tanto semplice e veloce. Salerno Nicola Integrazione Dati su Web

Integrazione Dati su Web Specifica del problema e descrizione funzionale dell’applicazione L’acquisto di articoli on-line oggigiorno ha avuto una crescita esponenziale. Sempre più individui decidono quindi di perlustrare vari siti di annunci alla ricerca dell’articolo interessato. Nel territorio italiano si sono imposti svariati siti che affrontano tale tematica tra cui spiccano Subito.it, Bakeca.it e Annunci.net. La scelta del miglior sito, in base all’interesse ricercato dall’utente, impone dunque l’utente a navigare in varie pagine Web aumentando difatti il tempo impiegato per una ricerca completa e integrale in tutti i siti. L’applicazione ideata e implementata pone come obiettivo predominante la riduzione dei tempi di ricerca nei vari siti dapprima citati avendo una panoramica generale all’interno di una singola pagina Web. L’utente dopo aver inserito l’articolo da ricercare e opzionalmente settato la regione di interesse avrà a disposizione l’intera lista avendo anche la possibilità di visualizzare su una mappa il luogo della persona che ha creato l’annuncio e il percorso per arrivare anche a codesta destinazione aumentando quindi in termini di usabilità, l’efficacia, l’efficienza e soddisfazione da parte di chi vi interagisce. Integrazione Dati su Web

Presentazione dell’architettura (CrawlerOfAds) Integrazione Dati su Web

Integrazione Dati su Web Come si può notare la struttura dell’applicazione corrisponde a un Data Warehouse solo in parte infatti lo strato di Integration Layer si suddivide in due aree: il primo mediatore avrà il compito di estrarre, trasformare e caricare i dati che vengono restituiti dai Wrapper assegnati alle fonti Subito.it, Bakeca.it e Annunci.net; nel secondo caso invece il procedimento varia leggermente perché nel momento in cui l’utente richiede la mappa del luogo verrà prima effettuata un’interrogazione al database per controllare se sono presenti tali coordinate e, solo nel caso in cui l’esito risulta negativo, verrà attivato il mediatore con il compito di ricavare le coordinate che verranno fornitogli dal Wrapper assegnato alla fonte Wikipedia; Integrazione Dati su Web

Integrazione Dati su Web Fonti Le fonti da cui ricavare i dati sono 5 e corrispondono a: Subito (http://www.subito.it/); Bakeca (http://www.bakeca.it/); Annunci.net (https://www.annunci.net/) ; Wikipedia (https://it.wikipedia.org); DB locale; Integrazione Dati su Web

Integrazione Dati su Web Dati da una fonte per ricavare dati da un’altra fonte Nel caso specifico di CrawlerOfAds quest’evento lo si verifica nel caso in cui l’utente vuole vedere sulla mappa il luogo dell’annuncio. Dopo aver ricavato la location dell’annuncio dai siti verrà effettuata una richiesta(scraping) a Wikipedia per ricavare le coordinate della città di interesse. Le coordinate verranno cosi’ trasferite all’API di GoogleMaps ottenendo una prima mappa della location. Integrazione Dati su Web

Integrazione Dati su Web Libreria Cheerio.js Per l’operazione di scraping nelle varie fonti è stata utilizzata la libreria Cheerio.js Caratteristiche: Implementa un sottoinsieme di core Jquery; Lavora con un modello DOM molto semplice e coerente. Di conseguenza, analisi, manipolazione e rendering sono incredibilmente efficienti; Incredibilmente flessibile in quanto può analizzare documenti sia HTML che XML; Integrazione Dati su Web

Alcune funzioni principali utilizzate per lo scraping La pagina che si intende perlustrare viene caricata tramite la funzione cheerio.load(). La funzione find() permette di posizionarsi in una specifica posizione della pagina immettendo come input l’elemento HTML desiderato settando opzionalmente in base al nostro caso di interesse anche l’id o la classe assegnata appunto all’attributo. La funzione hasClass() permette di conoscere se esiste una classe specifica per l’elemento HTML da noi inserito in input. La funzione $(element).attr() permette di ricavare il valore assegnato all’attributo di un dato elemento La funzione $(element).children() permette di ricavare i figli per un dato elemento e $(element).text() il testo associato se esistente. Integrazione Dati su Web

Descrizione dei Wrapper Ricerca coordinate in Wikipedia Integrazione Dati su Web

Integrazione Dati su Web Codice per ricavare coordinate da Wikipedia Integrazione Dati su Web

Integrazione Dati su Web Verifica coordinate nel database Inserimento coordinate nel database Integrazione Dati su Web

Integrazione Dati su Web Subito.it Integrazione Dati su Web

Integrazione Dati su Web Porzione di codice del Wrapper per Subito che ricava immagine, url(link dettagli annuncio), descrizione e location per ogni annuncio Integrazione Dati su Web

Integrazione Dati su Web Annunci.net Integrazione Dati su Web

Integrazione Dati su Web Porzione di codice del Wrapper Annunci che ricava prezzo, immagine, descrizione e url(link dettagli annuncio) per ogni annuncio Integrazione Dati su Web

Integrazione Dati su Web Bakeca.it Integrazione Dati su Web

Integrazione Dati su Web Porzione di codice del Wrapper Bakeca che ricava immagine, descrizione, url(link dettagli annuncio) e location per ogni annuncio Integrazione Dati su Web

Integrazione Dati su Web Datalog schema locale Subito(articolo,immagine,descrizione,url,prezzo,location) Bakeca(articolo,immagine,descrizione,url,prezzo,location) Annunci(articolo,immagine,descrizione,url,prezzo,location) Wikipedia(nome,coordinate) DB(nome,coordinate) Integrazione Dati su Web

Datalog schema globale Articolo(articolo,immagine,descrizione,url,prezzo, location) CoordinateWik(nome,coordinate) CoordinateDB(nome,coordinate) MaxOccurrence(nome,coordinate) Integrazione Dati su Web

Integrazione Dati su Web Mapping GAV Articolo(articolo, immagine,descrizione,url,prezzo,location) Subito(articolo,immagine,descrizione,url,prezzo,location) Articolo(articolo,immagine,descrizione,url,prezzo,location) Bakeca(articolo,immagine,descrizione,url,prezzo,location) Annunci(articolo,immagine,descrizione,url,prezzo,location) CoordinateWik(nome,coordinate) Wikipedia(nome,coordinate) CoordinateDB(nome,coordinate)  DB(nome,coordinate) Integrazione Dati su Web

Integrazione Dati su Web Mapping LAV Subito(articolo,immagine,descrizione,url,prezzo,location Articolo(articolo,immagine,descrizione,url,prezzo,location) Bakeca(articolo,immagine,descrizione,url,prezzo,location) Articolo(articolo, immagine,descrizione,url,prezzo,location) Annunci(articolo,immagine,descrizione,url,prezzo,location)  Articolo(articolo, immagine,descrizione,url,prezzo,location) Wikipedia(nome,coordinate)  CoordinateWik(nome,coordinate) DB(nome,coordinate)  CoordinateDB(nome,coordinate) Integrazione Dati su Web

Query Datalog CrawlerOfAds Query per la ricerca dell’articolo nei vari siti di annunci dapprima citati ricercaArticolo(articolo,immagine,descrizione,url,prezzo,location):- Articolo(articolo,immagine,descrizione,url,prezzo,location), articolo=‘BEVERLY 500’ SELECT Articolo.articolo,Articolo.immagine,Articolo.descrizione, Articolo.url,Articolo.prezzo,Articolo.location FROM Articolo WHERE Articolo.articolo=‘BEVERLY 500’. Integrazione Dati su Web

Query per la ricerca delle coordinate di una determinata location di un annuncio dammiCoordinateDB(nome,coordinate):- CoordinateDB(nome,coordinate),nome=‘Milano’. dammiCoordinateWik(nome,coordinate):- CoordinateWik(nome,coordinate),AND NOT CoordinateDB(nome,coordinate),nome=‘Milano’. IF EXISTS (SELECT CoordinateDB.nome,CoordinateDB.coordinate FROM CoordinateDB WHERE CoordinateDB.nome=‘Milano’) ELSE(SELECT CoordinateWik.nome, CoordinateWik.coordinate FROM CoordinateWik WHERE CoordinateWik.nome=‘Milano’) Integrazione Dati su Web

SELECT TOP MaxOccurrence.nome,MaxOccurrence.coordinate Query per la ricerca del paese con maggiori annunci in base alla ricerca fatta paesePiùAnnunci(nome):-MaxOccurrence(nome,coordinate). SELECT TOP  MaxOccurrence.nome,MaxOccurrence.coordinate FROM MaxOccurrence Integrazione Dati su Web

Riformulazione query ricercaArticolo GAV ricercaArticolo(articolo,immagine,descrizione,url,prezzo,location):- Articolo(articolo, immagine,descrizione,url,prezzo,location) (Subito(articolo,immagine,descrizione,url,prezzo,location)V Bakeca(articolo,immagine,descrizione,url,prezzo,location)V Annunci(articolo,immagine,descrizione,url,prezzo,location)). Integrazione Dati su Web

Integrazione Dati su Web Riformulazione query ricercaArticolo LAV ricercaArticolo(articolo,immagine,descrizione,url,prezzo,location):- Articolo(articolo,immagine,descrizione,url,prezzo,location) Subito(articolo,immagine,descrizione,url,prezzo,location), Bakeca(articolo,immagine,descrizione,url,prezzo,location), Annunci(articolo,immagine,descrizione,url,prezzo,location). Integrazione Dati su Web

Principali tecnologie utilizzate GoogleMaps API  Php MySql Javascript JQuery JSON  AJAX HTML5 CSS3 Integrazione Dati su Web

Integrazione Dati su Web Fine Studente Nicola Salerno Integrazione Dati su Web