施用Google搜索引擎提供的Web服务
文章来源:清华IT教育培训中心
使用Google搜索引擎提供的Web服务
一、简介
Google搜索引擎提供了基于SOAP的Web Services。这意味着不同的开发语言、开发环境都能够使用这种服务,另外,Google为了简化Java程序员的开发,它还提供了一套Java API接口,用于访问Web Services,这使得开发一套支持Google搜索功能的程序变得十分容易。开发人员可以将Google的搜索功能嵌入到他们的应用程序当中。本文将介绍如何使用这些Java API,以及如何使用Google的Web Services。
目前,Google的API还是处于Beta测试阶段,因此,在API的使用上还有一些限制。例如,使用这些API需要申请一个帐号。对于免费申请的帐号,为了防止开发人员不正当的使用,限制每个帐号、每天最多只能查询1000次。目前,Google还没有提出正式的运营模式和收费方式。
Google API目前主要提供三种服务,分别如下:
(1)搜索服务。用户提交一个搜索内容请求,Google服务器将查找超过20亿的网页内容,并且将满足用户需求的目标返回给用户,一般来说这种处理只需要几秒的时间。
(2)缓存服务(Cache)。用户提交一个URL,Google服务器将返回搜索器访问该URL的最新记录。这样,用户很容易重复使用Google的搜索成果。
(3)拼写检查。该功能用于检查用户的查询请求是否有效。用户提交一个查询请求,Google服务器将返回有效的、最接近该内容的检查内容,返回的查询请求将符合Google的查询规则。
二、使用Google API
Google为了提高开发人员的开发效率,提供了一套基于Java的API,用于直接访问Google服务器。该API包装了Google的Web Services,使用起来比Web Services更加方便。该API包主要包括如下几个类:
l GoogleSearch:该类封装了对于Google服务器的访问,支持搜索和缓存(cache)功能。
l GoogleSearchDirectoryCategory:表示Google中的一个分类目录。
l GoogleSearchFault:该类为Exception的一个子类,用于表示API使用的错误。
l GoogleSearchResult:该类封装了搜索的结果。
l GoogleSearchResultElement:该类表示搜索结果中的每一条记录。
下面的一个例子,用于一个简单查询,查询请求为“2008 奥运会”,查询的帐号为“12345678”。该例子将把查询结果打印出来。如果用户需要进一步解析查询结果,可以使用GoogleSearchResult和GoogleSearchResultElement类。
import com.google.soap.search.*;
import java.io.*;
public class GoogleAPITest {
public static void main(String[ ] args) {
String clientKey="123456789";
String query="2008 奥运会";
GoogleSearch s = new GoogleSearch();
s.setKey(clientKey);
try {
s.setQueryString(query);
GoogleSearchResult r = s.doSearch();
System.out.println("Google Search Results:"+t.toString());
} catch (GoogleSearchFault f) {
System.out.println("The call to the Google Web APIs failed:"+f.toString());
}
}
}
当然此处的clientKey只是我们随便起的,这是一个并不存在的帐号,如果有同学对此感兴趣,可以到Google的主页上去申请一个帐号,以获得该Web服务。