`
sasipa90
  • 浏览: 14675 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
最近访客 更多访客>>
社区版块
存档分类
最新评论

Google Search API & JSON

阅读更多
Google Search API
=================

   Google Search API give us an occasion to access to google search results. These results will be given in the JSON (JavaScript Object Notation) format.JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate. It is based on a subset of the JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999. JSON is a text format that is completely language independent but uses conventions that are familiar to programmers of the C-family of languages, including C, C++, C#, Java, JavaScript, Perl, Python, and many others. These properties make JSON an ideal data-interchange language.
    This development needs an input of 7 librairies which are:
         - json-lib-2.4-jdk15.jar
         - ezmorph-1.0.2.jar
         - commons-lang-2.6.jar
         - commons-lang-2.6-javadoc.jar
         - commons-lang-2.6-sources.jar
         - json-simple-1.1-bundle.jar
         - json-taglib-0.4.1.jar

These librairies  needs to be all used at same time or some exceptions might occure.

Here are the codes to get the number of url in which the searched name is, and the text in the web page which contains the name.

package com.google.pack1;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;

import atg.taglib.json.util.JSONArray;
import atg.taglib.json.util.JSONException;
import atg.taglib.json.util.JSONObject;
import atg.taglib.json.util.JSONTokener;



/**
 * This class is used to test some algorithm in the POLYPHONET:An Advanced Social Network paper
 * @author Pascal
 */
public class Polyphonet {
	
	//Is set for the JSAI case
	public static int k = 30;
	//co- occurence index
	public float f = 0;
	
	public String searchURL = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&rsz=8&hl=en&q=";
	
	 
	public static void main(String[] args) {
		Polyphonet p = new Polyphonet();
		System.out.println(p.coocFunction(80, 20, 100));
		p.googleHit("Bujumbura");
		p.googleTop("Bujumbura", k);
	}
	
	/**
	 * This method is called to calculate the co-occurence index f
	 * @param nx: result for x name
	 * @param ny: result for y name
	 * @param nxy: result for x and y name
	 * @return f
	 */
	public float coocFunction(int nx,int ny,int nxy){
		float min=0;
		
		//Determine the minimal value
		if(nx>ny){
			min = ny;
		}else{
			min = nx;
		}
		
		//calculate the f function
		if(nx>k && ny>k){
			f = nxy/min; 
			
		}else{
			f=0;
		}
		return f;
	}
	
	/**
	 * 
	 * @param name: searched name
	 * @return: Number of hits retrieved by a given query
	 */
	public int googleHit(String name){
		name = name.replace(" ", "%20");
		String sURL = searchURL +name;
		try {
			//create a url object
			URL url = new URL(sURL);
			System.out.println("the url is: "+sURL);
			//create a url connection object
			URLConnection conn = url.openConnection();
			System.out.println("The url is well connected");
			//get the input stream
			InputStream isr = conn.getInputStream();
			BufferedReader br = new BufferedReader(new InputStreamReader(isr));
			//result of the search
			String result = br.readLine();
			System.out.println(result);
			//create a JSON object
			JSONObject jsResult = new JSONObject(result).getJSONObject("responseData").getJSONObject("cursor");
			System.out.println(jsResult.toString());
			//get the number of result
			int n = jsResult.getInt("estimatedResultCount");
			System.out.println("The estimated result is: "+n);

			return n;
			
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.out.println("Please verify the URL "+sURL);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.out.println("The url didn't succeed to get connected, please try again");
		} catch (JSONException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return 0;
	}
	
	/**
	 * This method will search the text in the url found
	 * @param name: searched name
	 * @param k: Quantity or number set for the JSAI case in research
	 * @return: D arrayList which contain all the found text
	 */
	public ArrayList<String> googleTop(String name, int k){
		name = name.replace(" ", "%20");
		String sURL = searchURL +name;
		try {
			//create a url object
			URL url = new URL(sURL);
			System.out.println("the url is: "+sURL);
			//create a url connection object
			URLConnection conn = url.openConnection();
			System.out.println("The url is well connected");
			//get the input stream
			InputStream isr = conn.getInputStream();
			BufferedReader br = new BufferedReader(new InputStreamReader(isr));
			//result of the search
			String result = br.readLine();
			//create a JSON object
			JSONArray jsaResult = new JSONObject(result).getJSONObject("responseData").getJSONArray("results");
			//create an arrayList
			ArrayList<String> D = new ArrayList<String>();
			//get the content of k first results
			for(int i = 0; i<jsaResult.size()&&i<k; i++){
				//Get each index as an object
				JSONObject jsCont = jsaResult.getJSONObject(i);
				String content = jsCont.getString("content");
				System.out.println("The content is "+ content);
				D.add(content);
			}
			
			return D;
			
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.out.println("Please verify the URL "+sURL);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.out.println("The url didn't succeed to get connected, please try again");
		} catch (JSONException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
	}

}



For more informations, these are the links:
     - http://code.google.com/apis/websearch/docs/reference.html#_intro_fonje

     - http://www.json.org/
分享到:
评论

相关推荐

    Google Custom Search API应用实例

    首先,要使用Google Custom Search API,你需要在Google Developers Console上创建一个项目,并启用Custom Search JSON API。然后,创建一个新的Custom Search Engine,设置你要搜索的网站范围。获取到这个引擎的ID...

    利用Google AJAX Search API

    虽然Google AJAX Search API已退役,但Google提供了其他搜索API,如Custom Search JSON API,它可以通过HTTPS请求获取JSON格式的搜索结果。使用这个API时,你需要创建一个自定义搜索引擎并获取其ID,然后在请求中...

    Jquery调用Google搜索API实现搜索引擎.rar

    在这个文件中,你可以找到使用jQuery发起Ajax请求到Google Custom Search JSON API的代码。Google Custom Search API允许开发者通过JSON格式获取搜索结果,然后在网页上展示。 2. **index.html**: 这是网页的结构...

    Google AJAX Search API+TAG

    ### Google AJAX Search API+TAG 知识点解析 #### 一、Google AJAX Search API简介 **Google AJAX Search API**是一种JavaScript代码库,旨在为网页和Web应用程序提供内嵌式Google搜索的功能。它允许开发者轻松地...

    Google-AJAX-Search-API.rar

    【标题】"Google-AJAX-Search-API.rar" 涉及的是谷歌的 AJAX(Asynchronous JavaScript and XML)搜索 API,这是一个允许开发者在他们的网页上嵌入动态、实时的谷歌搜索功能的技术。这个API利用了AJAX技术,使得用户...

    googleapi.jar

    `googlesearch.html` 文件可能是示例代码或者文档,展示了如何使用googleapi.jar中的类和方法来执行Web页面搜索。HTML文件通常包含HTML标记语言,可能还包含JavaScript或其他脚本语言,用于演示如何与API进行交互,...

    google.rar_Google api_Search Engine_create XML_c语言 xml_google

    本项目聚焦于使用Google Search API创建一个自定义的搜索引擎,而且选择了C语言作为实现的基础,并涉及到了XML解析器的开发。下面将详细阐述这个过程中的关键知识点。 首先,**Google Search API** 是Google提供的...

    掌握 Ajax第 9 部分-使用 Google Ajax Search API.pdf

    ### 掌握 Ajax 第 9 部分:使用 Google Ajax Search API #### 知识点概述 在本文档中,作者Brett McLaughlin详细介绍了如何利用公共API(特别是Google Ajax Search API)来增强Web应用程序的功能。这篇文章适用于...

    google_API接口

    需要注意的是,Google AJAX Search API已经在2015年被弃用,现在推荐使用Google Custom Search JSON API或Google Search Apis for Sheets。虽然AJAX Search API不再维护,但这段代码仍然可以作为一个学习如何与...

    PHP访问Google Search API的方法

    Google Search API是一个允许开发者在他们的应用程序中使用Google搜索的强大工具。 描述中提到的实例分析了PHP针对谷歌API访问的技巧,这意味着文章可能包含了一些具体的代码示例和解释,以帮助读者更好地理解和...

    官方google API

    谷歌API是Google为开发者提供的一系列接口,允许他们与Google的各种服务...然而,需要注意的是,Google AJAX Search API已在2015年被弃用,现在的开发可能需要转向Google Custom Search JSON API或其他更新的解决方案。

    google search close 谷歌搜索类

    这种功能通常依赖于Google Custom Search JSON API,它允许开发者构建自定义的搜索体验,可以在网站上嵌入或独立使用。 首先,`GoogleCustomSearch.php`文件很可能是实现了与Google Custom Search API交互的PHP类。...

    google api 自定义搜索引擎

    1. **API接口**:Google Custom Search JSON API 提供了与自定义搜索引擎交互的途径。开发者可以通过API发送HTTP请求,获取搜索结果,并将这些结果整合到自己的应用中。 2. **JSON格式**:API返回的数据通常是JSON...

    google maps api PHP版本

    3. **地标搜索(Place Search)**:如果你需要在地图上显示特定类型的地点,如餐馆、咖啡馆等,可以使用 Place API 进行搜索。 4. **路径规划(Directions)**:为用户提供从一个位置到另一个位置的详细路线,包括...

    程序天下:Google.API开发详解..光盘_教程

    4. **Google Search Apis**:例如Custom Search JSON API,可以让开发者自定义搜索结果,并将搜索功能嵌入到自己的网站中。 5. **Google Drive API**:允许开发者读写Google Drive上的文件,实现文件的上传、下载、...

    用PHP获取Google AJAX Search API 数据的代码

    Google AJAX Search API为开发者提供了一种简单的方式,通过编程接口来实现对Google搜索功能的调用。本文将详细介绍如何使用PHP语言来获取Google AJAX Search API的数据,并给出具体的代码实例。 #### 二、Google ...

    google-api-services-customsearch-v1-rev16-1.13.2-beta.zip

    标题 "google-api-services-customsearch-v1-rev16-1.13.2-beta.zip" 暗示了这是一个包含Google Custom Search API的Java客户端库,版本为v1-rev16,对应的版本号是1.13.2-beta。这个库允许开发者通过编程方式与...

    Google custom search engine

    public class GoogleSearch { public static string SearchFromGoogle(string keyWord) { if (string.IsNullOrEmpty(keyWord)) return ""; // 替换为你的API密钥 string apiKey = "AIzaSyDw5YYctVRxdPxAe0...

    Laravel开发-googlesearch

    而Google自定义搜索引擎(Custom Search JSON API)则允许开发者针对特定网站或一组网站进行定制化的搜索。 首先,你需要在 Google 开发者控制台创建一个新的项目,并启用 Custom Search JSON API。接下来,创建一...

    android_google_search_demo

    "android_google_search_demo"是一个项目,展示了如何在Android应用中利用Google的Custom Search JSON API来实现自定义的搜索功能。下面将详细介绍这个项目的相关知识点。 首先,Google Custom Search API允许...

Global site tag (gtag.js) - Google Analytics