借用 Google 构建自己的搜索系统

 
转自:http://blog.sina.com.cn/u/457a8fd1010009xn
如何利用Google的WebService,看这里
借用 Google 构建自己的搜索系统
随着网络越来 越发达,互联网上的资料多的只能以海量的海量来形容。如何从海量的数据中找到自己需要的数据呢?Google 解决了这个问题,为我们提供了优秀搜索服务。现在我们可以借用 Google 来构建自己的搜索系统。这里构建 的搜索系统不是把 Google 提供的一段 html 代码嵌入到网页,这样只是制造了一个 Google 搜索入口而已。

Google 提供了一个 Google Web API 开发包,核心用到了 Web Service 技术。如果你不了解 Web Service 技术,不熟悉 XML,不要紧,开发包里面的 googleapi.jar 已经为我们提供 Java 访问的方法。Google Tag Library 是开源项目,在 googleapi.jar 基础之上提供更简单方便 JSP 标记库。我们将以 googleapi.jar 和 Google Tag Library 为核心开始构建自己的搜索系统。

一 安装 Tomcat

从这里下载 Tomcat : http://jakarta.apache.org/tomcat/,如何安装配置 Tomcat 请参考其相关文档。

二 Google Web API 开发包

Google Web API 开发包对个人非商业用途是免费的,先访问 Google 开发包下载 页面,把开发包下载到本地。Google 限制了要有 license key 才能正常使用。先注册一个帐号, 获取 license key, Google 将这个 license key 发送你注册的邮箱。这个 license key 同时也是限制每天 只能搜索 1000 次。

三 安装配置 Google Tag Library

访问 Google Tag Library 站点,为了方便,我直接下载了 war 文件,这个 war 文件包含了简单的 JSP 范例,可以直接使用。我下载的是 google-examples-1.0.1.war.zip ,把这个文件解压到 tomcat/webpapp 目录下,并改名为 google。然后把 Google Web API 开发包里面的 googleapi.jar 放到 tomcat/webapps/google/WEB-INF/lib 目录下。

接着修改 tomcat/webapps/google/WEB-INF/web.xml 文件,输入 license key,把

 

<context-param>
     <param-name>google_key</param-name>
     <param-value/>
     <description>The Google Web APIs client authorization key.</description>
</context-param>

修改为(假设我的 license key 是 000000000000000000000000)

 

<context-param>
     <param-name>google_key</param-name>
     <param-value>000000000000000000000000</param-value>
     <description>The Google Web APIs client authorization key.</description>
</context-param>

如果你需要代理才能访问 Google 的话,你可以在 web.xml 设置好你的代理参数,这里就不细说:

 

<context-param>
     <param-name>google_proxy_host</param-name>
     <param-value/>
     <description>The host to use as an HTTP proxy.</description>
</context-param>
<context-param>
     <param-name>google_proxy_port</param-name>
     <param-value/>
     <description>The port to use as an HTTP proxy.</description>
</context-param>
<context-param>
     <param-name>google_proxy_username</param-name>
     <param-value/>
     <description>The username required for the HTTP proxy.</description>
</context-param>
<context-param>
     <param-name>google_proxy_password</param-name>
     <param-value/>
     <description>The password required for the HTTP proxy.</description>
</context-param>

四 启动服务并测试

首先启动 Tomcat,然后访问 http://localhost:8080/google/advanced.html,你就会看到一个类似 Google 的搜索页面,输入你想搜索的关键字,看看是否返回你需要的资料。

五 定制

Google Tag Library 提供的范例比较简单,而且在中文的处理有问题,需要定制并修改。首先把 advanced.html 文件中的

 

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

修改为

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

然后把

 

<%@ page contentType="text/html;charset=utf-8" %>

增加到 advanced.jsp 文件的顶端。同时你可以根据自己的喜好修改页面的显示风格,需要注意的是,一定 要把文件以 UTF-8 编码来保存,否则文件的中文将不能正确显示。最后来看看我修改定制的搜索系统

 

六 总结

这里只做了一个简单的介绍,还有很多的特性还没有展现出来,有兴趣的朋友可以参考相关的文档。如果有 任何问题和疑问可以发送邮件给我 wayne@sentom.net 或在我们的论坛 http://www.sentom.net/forum 提出。
用GoogleAPI编写搜索程序

一、申请Google账号,获取key

  1. 访问http://www.google.com/apis
  2. 点击“create a Google Account
  3. 根据提示输入信息
  4. 收邮件,获取激活链接
  5. 再收邮件,获取key

二、下载googleapi

  1. 访问http://www.google.com/apis
  2. 点击“download”下载googleapi.zip

三、创建Java项目

  1. 在Eclipse中创建一个Java Project
  2. 将googleapi中的“googleapi.jar”放到lib目录
  3. 在项目中添加该jar

四、编写程序

代码如下:

package cn.livedoor.shangcm.googleclient;

import com.google.soap.search.GoogleSearch;
import com.google.soap.search.GoogleSearchResult;
import com.google.soap.search.GoogleSearchFault;
import com.google.soap.search.GoogleSearchResultElement;

public class GoogleClient {

public static void main(String[] args) {
String keyword = "你要搜索的关键字";
String clientKey = "你获取的key";
GoogleSearch gs = new GoogleSearch();
gs.setKey(clientKey);
gs.setQueryString(keyword);
gs.setLanguageRestricts("lang_zh-CN");
//gs.setStartResult(10);
try {
GoogleSearchResult gsr = gs.doSearch();
GoogleSearchResultElement[] gsreList = gsr.getResultElements();
for(int i = 0; i < gsreList.length; i++) {
GoogleSearchResultElement gsre = gsreList[i];
System.out.println("Title : " + gsre.getTitle());
System.out.println("URL : " + gsre.getURL());
System.out.println("Snippet: " + gsre.getSnippet());
System.out.println("----------------------------------------------------------");
}
} catch(GoogleSearchFault gsf) {
System.out.println("The call to the Google Web APIs failed: " + gsf.toString());
}
}

}

五、运行

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值