La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Text Processing Google APi Basi di Dati Multimediali - Giugno 2005 Marco Ernandes:

Presentazioni simili


Presentazione sul tema: "Text Processing Google APi Basi di Dati Multimediali - Giugno 2005 Marco Ernandes:"— Transcript della presentazione:

1 Text Processing Google APi Basi di Dati Multimediali - Giugno 2005 Marco Ernandes:

2 Introduzione Google Web APIs è una servizio software (beta) che permette a un qualsiasi programma di collegarsi direttamente al motore di ricerca Google. Google Web APIs è una servizio software (beta) che permette a un qualsiasi programma di collegarsi direttamente al motore di ricerca Google. E destinato a tutti gli sviluppatori di software che vogliono usare Google come risorsa. E destinato a tutti gli sviluppatori di software che vogliono usare Google come risorsa. Linterfaccia tra un programma e Google avviene attraverso gli standard SOAP e WSDL. Linterfaccia tra un programma e Google avviene attraverso gli standard SOAP e WSDL. Sono supportati i seguenti ambienti di programmazione: Java, Perl, Visual Studio.NET Sono supportati i seguenti ambienti di programmazione: Java, Perl, Visual Studio.NET Download delle API e della documentazione da: Download delle API e della documentazione da:

3 Istallazione 1.Download the developer's kit: The Google Web APIs developer's kit provides documentation and example code for using the Google Web APIs service. The download includes Java and.NET programming examples and a WSDL file for writing programs on any platform that supports web services.The Google Web APIs developer's kit provides documentation and example code for using the Google Web APIs service. The download includes Java and.NET programming examples and a WSDL file for writing programs on any platform that supports web services. download 2.Create a Google Account To access the Google Web APIs service, you must create a Google Account and obtain a license key. Your Google Account and license key entitle you to 1,000 automated queries per day.To access the Google Web APIs service, you must create a Google Account and obtain a license key. Your Google Account and license key entitle you to 1,000 automated queries per day. create a Google Accountcreate a Google Account 3.Write your program using your license key Your program must include your license key with each query you submit to the Google Web APIs service. Check out our Getting Help page or read the FAQs for more information.Your program must include your license key with each query you submit to the Google Web APIs service. Check out our Getting Help page or read the FAQs for more information. Getting HelpFAQs Getting HelpFAQs

4 Istallazione Il file googleapi.zip (developers kit) contiene: Il file googleapi.zip (developers kit) contiene: googleapi.jar – Libreria Java Google Web APIs service. googleapi.jar – Libreria Java Google Web APIs service. GoogleAPIDemo.java – Programma esempio che usa googleapi.jar GoogleAPIDemo.java – Programma esempio che usa googleapi.jar Example.NET – programmi esempio in VBasic e C# che usano Google Web APIs. Example.NET – programmi esempio in VBasic e C# che usano Google Web APIs. APIs_Reference.html - Documentazione generale delle API. APIs_Reference.html - Documentazione generale delle API. Javadoc - Documentazione della libreria JAVA. Javadoc - Documentazione della libreria JAVA. GoogleSearch.wsdl – Descrizione WSDL delle Google SOAP API. GoogleSearch.wsdl – Descrizione WSDL delle Google SOAP API. soap-samples/ - Esempi di messaggi SOAP al servizio. soap-samples/ - Esempi di messaggi SOAP al servizio.

5 WSDL e SOAP WSDL: WSDL: Web Services Description Language Web Services Description Language The standard format for describing a web service. The standard format for describing a web service. Expressed in XML, a WSDL definition describes how to access a web service and what operations it will perform. Expressed in XML, a WSDL definition describes how to access a web service and what operations it will perform. SOAP: SOAP: Simple Object Access Protocol. Simple Object Access Protocol. È un protocollo per comunicazioni tra applicazioni. È un protocollo per comunicazioni tra applicazioni. Descrive un formato per spedire messaggi. Descrive un formato per spedire messaggi. Basato su XML, è language e platform-independent. Basato su XML, è language e platform-independent. e7gxV1… e7gxV1… telephone inventor telephone inventor

6 GoogleAPIDemo.java public class GoogleAPIDemo { public static void main(String[] args) { public static void main(String[] args) { // Parametri passati come argomenti // Parametri passati come argomenti String clientKey = args[0]; String clientKey = args[0]; String directive = args[1]; String directive = args[1]; String directiveArg = args[2]; String directiveArg = args[2]; // Create lobject Google Search // Create lobject Google Search GoogleSearch s = new GoogleSearch(); GoogleSearch s = new GoogleSearch(); // set our authorization key // set our authorization key s.setKey(clientKey); s.setKey(clientKey); // argomento directive stabilisce se si // argomento directive stabilisce se si // si vuol fare una search o una cached query // si vuol fare una search o una cached query try { try { // se è stata selezionata una search query // se è stata selezionata una search query if (directive.equalsIgnoreCase("search")) { if (directive.equalsIgnoreCase("search")) { s.setQueryString(directiveArg); s.setQueryString(directiveArg); GoogleSearchResult r = s.doSearch(); GoogleSearchResult r = s.doSearch(); // stampa i risultati del search // stampa i risultati del search System.out.println("Google Search Results:"); System.out.println("Google Search Results:"); System.out.println(r.toString()); System.out.println(r.toString()); } // se è stata selezionata una cached query // se è stata selezionata una cached query else if (directive.equalsIgnoreCase("cached")) { else if (directive.equalsIgnoreCase("cached")) { byte [] cb = s.doGetCachedPage(directiveArg); byte [] cb = s.doGetCachedPage(directiveArg); // stampa il documento cached // stampa il documento cached System.out.println("Cached page:"); System.out.println("Cached page:"); String cachedString = new String(cb); String cachedString = new String(cb); System.out.println(cachedString); System.out.println(cachedString); } // catch di una eccezione nella ricerca Google // catch di una eccezione nella ricerca Google } catch (GoogleSearchFault f) { } catch (GoogleSearchFault f) { System.out.println("The call to the Google Web APIs failed:"); System.out.println("The call to the Google Web APIs failed:"); System.out.println(f.toString()); System.out.println(f.toString()); } }}

7 RICERCA con la classe GoogleSearch // specifica la chiave per lautorizzazione void setKey(String key) // specifica la lingua // es:s.setLanguageRestricts("lang_it"); void setLanguageRestricts(String lr) // setta il numero max. di risultati: ogni // query ritorna al massimo 10 documenti // quindi un setMaxResults(100) mette in // moto 10 query diverse !!! void setMaxResults(int maxResults) // settano il proxy (se necessario) void setProxyHost void setProxyPassword … // stabilisce la stringa di query da // passare a Google void setQueryString(String query) // stabilisce la stringa di restrizione // es: site:www.repubblica.it oppure // es: intitle:crosswords void setRestrict(String restrict) // setta la ricerca sicura // (evita pornografia) void setSafeSearch(boolean safe) // stabilisce da che punto far // cominciare i risultati void setStartResult(int start) // invoca una ricerca che ritorna un // oggetto GoogleSearchResult GoogleSearchResult doSearch() // scarica dalla cache di Google il // documento con indirizzo url byte[] doGetCachedPage(String url)

8 Managing dei risultati GoogleSearchResult: classe che contiene tutta linformazione presente nella pagina html di risposta. GoogleSearchResult: classe che contiene tutta linformazione presente nella pagina html di risposta. // numero stimato di risultati ottenuti int getEstimatedTotalResultsCount() // ritorna larray dei ResultElements GoogleSearchResultElement[] getResultElements() GoogleSearchResultElement[] getResultElements() // ritorna il tempo di ricerca in secondi double getSearchTime() double getSearchTime() // fornisce suggerimenti per la ricerca String getSearchTips() GoogleSearchResultElement: classe che contiene linfo. di una singola risposta. GoogleSearchResultElement: classe che contiene linfo. di una singola risposta. // dimensione (in Kb) del file in cache String getCachedSize() // nome directory Google in cui si trova String getDirectoryTitle() // ritorna la snippet del documento String getSnippet() // ritorna il titolo del documento String getTitle() // ritorna la URL del documento String getURL()

9 Come sgraffignare Google Usare le Google API è il modo corretto di sfruttare il motore di ricerca. Ma 1000 queries sono pochine … Usare le Google API è il modo corretto di sfruttare il motore di ricerca. Ma 1000 queries sono pochine … Se da un programma si fa una richiesta HTTP a Google mettendo la query nellindirizzo la richiesta viene rifiutata! (es: Se da un programma si fa una richiesta HTTP a Google mettendo la query nellindirizzo la richiesta viene rifiutata! (es: Per aggirare il problema il trucco è semplice: far finta di essere un browser! Per aggirare il problema il trucco è semplice: far finta di essere un browser! URL webPage = new URL(urlString); // effettua il fake di Mozilla per ingannare il motore di ricerca HttpURLConnection urlConn = (HttpURLConnection) webPage.openConnection(); urlConn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;.NET CLR )"); "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;.NET CLR )"); InputStream inputStream = urlConn.getInputStream(); BufferedReader in = new BufferedReader(new InputStreamReader(inputStream)); String inputLine; // leggi tutto il file while ( (inputLine = in.readLine()) != null) retrieved += inputLine; in.close(); NON FATELO!!!! ALTRIMENTI GOOGLE METTE IL VOSTRO IP IN UNA BLACKLIST


Scaricare ppt "Text Processing Google APi Basi di Dati Multimediali - Giugno 2005 Marco Ernandes:"

Presentazioni simili


Annunci Google