关于Google的web服务
作者:英雄无敌 日期:2005-05-23
今天想起来为什么不用Google把我们数据库里的偷来信息到Google上搜索得到更详细的信息筛选后入库呢,还能省兼职的工,就开始寻找相关资料,但是发现我这里不能下载Google的sdk,就只能托US的朋友下载一个再传给我,注册Google的帐号后发现取不到授权的Key,不管是上海还是北京还是杭州都不行,只好托NZ的朋友帮忙登录得到一个,东西全了开始写代码又发现http://api.google.com/GoogleSearch.wsdl上海北京杭州都不能访问,NZ能访问,唉郁闷啊,这算不算国别歧视,还是我们D不让我们访问呢。只能找了人家的代码记录一下了。
一、下载类库创建帐户
首先要上http://www.google.com/apis/ 下载类库和创建一个访问google的帐户。
二、一个例子
这样便可以在自己的程序中访问Google提供的搜索功能了。通过google提供的WSDL来生成对应的Java类以及Stub文件来访问。还可以通过Google提供的API直接访问,下面这个例子是应用google提供的API来访问。
import com.google.soap.search.GoogleSearch;
import com.google.soap.search.*;
public class GoogleSearchTutorial {
public static void main(String[] args) {
try {
String searchTerm = "帅哥 做梦的bug";//args[0];
GoogleSearch search = new GoogleSearch();
/* //建议拼写
* String suggestion = search.doSpellingSuggestion(spellingRequest);
* //缓存页面
byte[] pageText = search.doGetCachedPage(
"http://www-106.ibm.com/developerworks/xml/library/x-tiphdln.html");*/
//输入和输出语言的编码
search.setInputEncoding("greek");
search.setOutputEncoding("hebrew");
//去除成人结果
search.setSafeSearch(true);
//去除相关结果
search.setFilter(true);
//如果需要代理,别忘了在这里设置
//search.setProxyHost("proxy");
//search.setProxyPort(80);
search.setKey("00000帐户0000000");
search.setQueryString(searchTerm);
//设定检索的范围
int startResult = 2;
search.setStartResult(startResult);
int maxResult = 2;
search.setMaxResults(maxResult);
//设定检索的区域
search.setRestrict("countryChinese");
//设定语言限制
search.setLanguageRestricts("lang_zh-CN");
GoogleSearchResult result = search.doSearch();
int numResults = result.getEstimatedTotalResultsCount();
//显示结果页面
//System.out.println( result.toString() );
//显示结果记录的在检索结果中的位置范围
GoogleSearchResultElement[] resultElements = result
.getResultElements();
System.out.println("Start index = " + result.getStartIndex());
System.out.println("End index = " + result.getEndIndex());
int startIndex = result.getStartIndex() - 1 - startResult;
int endIndex = result.getEndIndex() - 1 - startResult;
for (int i = startIndex; i <= endIndex; i++) {
GoogleSearchResultElement resultElement = resultElements[(i)];
//得到结果的Goolge 分类
GoogleSearchDirectoryCategory category = resultElement
.getDirectoryCategory();
String categoryViewable = category.getFullViewableName();
String categoryString = category.toString();
System.out.println(categoryViewable + " " + categoryString);
//内容片断
String snippet = resultElement.getSnippet();
//Open Directory Project 是自愿发起为因特网上有价值的站点编制目录的工作
String directoryTitle = resultElement.getDirectoryTitle();
String directorySummary = resultElement.getSummary();
//标题、URL
String title = resultElement.getTitle();
String url = resultElement.getURL();
System.out.println(title);
System.out.println(url);
System.out.println(" " + snippet );
System.out.println("Open Directory Information:");
System.out.println(" " + directoryTitle);
System.out.println(" " + directorySummary);
System.out.println("");
}
if (result.getEstimateIsExact()) {
System.out.println("Number of results: " + numResults);
} else {
System.out.println("Estimated number of results:" + numResults);
}
} catch (GoogleSearchFault gsf) {
System.out.println("Google Search Fault: " + gsf.getMessage());
}
}
}
评论: 0 | 引用: 0 | 查看次数: 3856
发表评论