查找引擎之王 google 于 4/11 开放了它的查询接口,可以让全世界各地的 Java 以及 .NET 程序员,免费地以 WebServices 的方式,对 google 下查找指令,并且可以将结果使用于自己的程序或网页中,并且几乎目前所有的程序语言都有 WebServices 的相关软体包,本次介绍应该可以给大家一个简单的 WebServices 概念 ...
查找引擎之王 google 于 4/11 开放了它的查询接口,可以让全世界各地的 Java 以及 .NET 程序员,免费地以 WebServices 的方式,对 google 下查找指令,并且可以将结果使用于自己的程序或网页中。不过使用上也有限制,它一天只允许未付费的程序员查找 1000 次。要使用前,必须先向 google 注册帐号,取得一个 32 位长度的 license key ,每次呼叫查询时,必须带入这个 license key 即可使用。因为 WebServices 以 WSDL (Web Service Definition Language) 的方式描述所开放的接口,走的通讯协定是 SOAP on HTTP ,所以理论上可以穿越防火墙。 Java 范例程序如下∶
import java.io.*;
import com.google.soap.search.*; // 这是 googleapi.jar,
由 google 所提供
public class SearchGoogle {
public static void main(String[] args) {
if (args.length != 2)
{
System.err.println("Usage: java SearchGoogle
LicenseKey 查询字符串 ");
System.exit(1);
}
String clientKey = args[0];
String queryString = args[1];
System.out.println(" 查询字符串 = " + queryString);
// 产生查找对象,设定输出编码 (big5)
GoogleSearch s = new GoogleSearch();
s.setKey(clientKey);
s.setOutputEncoding("big5");
try
{
s.setQueryString(qyeryString);
GoogleSearchResult r = s.doSearch();
System.out.println(" 查找结果 :");
System.out.println("======================");
System.out.println(r.toString());
}
catch (GoogleSearchFault e)
{
System.out.println(" 查找失败 ");
}
}
}
|
使用方法以及查询结果(执行环境∶ Linux + JDK 1.3.1_01 ,主机位于防火墙后端)∶
java -classpath .:../lib/googleapi.jar
SearchGoogle xxxxxxxxx- 我的 LicenseKey-xxxxxxxxx LinuxFab
查询字符串 = LinuxFab
查找结果 :
======================
{
TM = 0.048257
Q = "LinuxFab"
CT = ""
TT = ""
CATs =
{
{SE="Big5", FVN="Top/World/Chinese_Traditional/
计算机 /Operating_Systems/Unix/Linux"}
}
Start Index = 1
End Index = 10
Estimated Total Results Number = 11500
Document Filtering = true
Estimate Correct = false
Rs =
{
[
URL = "http://bbs.ee.ntu.edu.tw/boards/Linux/21/"
Title = " ◆ 【 LinuxFab 早报】 "
Snippet = " ◆ 【 LinuxFab 早报】 . ... 5, ◇
【 LinuxFab 本周专栏】 如何制作简易 Floppy Liunx, linuxfab.
07/13/01. ... "
Directory Category = {SE="", FVN=""}
Directory Title = ""
Summary = ""
Cached Size = "11k"
Related information present = true
Host Name = ""
],
[
URL = "http://bbs.ee.ntu.edu.tw/boards/Linux/21/73.html"
Title = " ◇ 【 LinuxFab 早报】 - Linux 2.4.10 内核中剽窃了 ┅ "
Snippet = " ◇ 【 LinuxFab 早报】 - Linux 2.4.10 内核中 剽窃了 ┅ .
发信人 : linuxfab.bbs ... "
Directory Category = {SE="", FVN=""}
Directory Title = ""
Summary = ""
Cached Size = "10k"
Related information present = true
Host Name = "bbs.ee.ntu.edu.tw"
],
[
URL = "http://www.lslnet.com/linux/docs/linux-3033.htm"
Title = "LinuxFab: Red Hat7.0 ? 新特色 - [? 森林 - 自由 ? 件 ]"
Snippet = " ... LinuxFab: Red Hat7.0 ? 新特色 ?
森林 http://www.lslnet.com 2000 年 9 月 24 日 09:59 ...
摘自∶ http:linuxfab.cx [ ?? 窗口 ]. ... "
Directory Category = {SE="", FVN=""}
Directory Title = ""
Summary = ""
Cached Size = "5k"
Related information present = true
Host Name = ""
],
下略
|
当然,输出结果不是这么杂乱, google 所提供的 api 有各种查找设定方法,例如从第几笔开始查找、设定传回笔数、偏好查找(避免查找 java 时传回 咖啡 的结果) ... 等等,各位可以好好玩一玩。
如果您不想使用 google 的 library ,您也可以利用手边的 WebServices 工具程序,自动抓取 google 所提供的 WSDL 文档(位于∶ http://api.google.com/GoogleSearch.wsdl ),并且产生相关的 java 对象。以下以 GLUE 这套 Java WebServices 软体包做范例∶
$ wsdl2java http://api.google.com/GoogleSearch.wsdl -p example -d example/
write file example/IGoogleSearchPort.java
write file example/GoogleSearchServiceHelper.java
write file example/ResultElement.java
write file example/DirectoryCategory.java
write file example/GoogleSearchResult.java
write file GoogleSearchService.map
如果您对本文有任何疑问或者建议,请到讨论区发表您的意见:
>>
论坛入口 <<
上一篇:如何在Linux下用DMA方式传输数据
下一篇:利用twig架设WebMail系统
【文章评论】
【收藏本文】
【推荐好友】
【打印本文】
【我要投稿】 【论坛讨论】
更多相关文章
|
|