现在的位置: 首页 > 综合 > 正文

如何利用Google的Web服务(GOOGLE API)

2013年06月09日 ⁄ 综合 ⁄ 共 1873字 ⁄ 字号 评论关闭

Google搜索引擎无疑是环球网上最好最受欢迎的网站之一。相对于其它搜索引擎,速度和搜索能力是Google的最大优点。考虑到搜索引擎的发展趋势,Google现在还提供了Web服务接入。让我们看看如何访问Google的Web服务。

几个方法

从表面上来看,我们只有一种使用Google的方法:用一个或者多个关键字在它的庞大数据库上进行搜索。然而,有经验的Google用户已经意识到了Google还提供了额外服务。网页缓冲就是其中一项,它可以用来检查无法访问到的过期网页以及网址。

Googel还提供一个不广为人知的功能,即拼写检查。例如,假设你在搜索中键入“web servise”,Google就会给搜索结果的同时还给出一个链接询问你是否要搜索“web service”。这三项功能(搜索、检索页面缓冲以及拼写检查)的每一项都可以通过Google的Web服务API来访问到。

连接Google

为了使用Google的Web服务,你需要在Google上注册并获得一个帐号。你还需要下载开发者套件。这个套件包括一个JAR文件、文档、一个WSDL文件以及若干例子。JAR文件包括了访问Web服务的预建wrapper。下载了开发者套件后,你只需要把这个JAR文件添加到你的classpath中去。

在使用Google API之前你还需要创建一个Google帐号。创建完帐号之后,Google会为你分配一个唯一的密匙码(key code),每次调用API时都需要这个密匙码,它用于识别你的身份。Google限制一个密匙每天调用API的次数不超过一千次。

客户端的一个例子

你可以用Google API来访问我们上面提到的三种方法。我们将创建一个小的Java应用程序,它根据命令行所提供的关键字在Google上进行搜索。清单1给出了我们的Java文件。

清单1:MyGoogleSearch.java

import java.net.*;
import java.util.*;
import org.apache.soap.*;
import org.apache.soap.rpc.*;
import com.google.soap.search.*;

public class MyGoogleSearch {
  public static void main (String[] args) {
    GoogleSearch gs;

    GoogleSearchResult gsr;
    String key = "xFyor345zlIiiTqmzu5sRGHwCS2xNR1q";

   try {
      if (args.length < 1) {
        System.out.println("Usage: java MyGoogleSearch /"some string/"/n");
        System.exit(0);
      }
      gs = new GoogleSearch();
      gs.setKey(key);
      gs.setQueryString(args[0]);
      gsr = gs.doSearch();
      System.out.println("Result: " + gsr);
    } catch (Exception e) {
      System.out.println("Exception: " + e.getMessage());
      e.printStackTrace();
    }
  }
}

GoogleSearch类实现了上述代码的主要功能。这个类在一个“标准”Java类中包装Google的Web服务。在GoogleSearch类中,每一个Web服务方法都用一个Java方法来表示,例如doSearch()。参数并没有在方法中指定,而是从属于GoogleSearch类,在调用某个方法之前必须指定其参数。

在最简配置的搜索中,你至少需要提供密匙码和查询字符串。我们的密匙码已经在上述文件中写死了(代码“ String key = "xFyor345zlIiiTqmzu5sRGHwCS2xNR1q";”),查询字符串来自类运行时的命令行。

方法doSearch()的返回值是一个GoogleSearchResult类。这个类包括了搜索的所有结果,例如搜索到的页面数、描述、缓冲大小以及其它有关信息。为了简化我们这个例子,搜索结果用隐含的toString()方法输出到控制台。每一项结果都包括一个URL、标题、内容摘录、目录类别、目录标题、摘要、缓冲大小以及主机名;它还指出相关信息是否可以访问到。

抱歉!评论已关闭.