今天想起来为什么不用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()); } } }