虽说google去年不再升级web search api了,但它依然还可以使用,google建议使用ajax search,但感觉ajax的一些方面还需加强。
web search还是很好用的,一个jar包,一个key,由于google提供下载和不让注册key,这个包找了好久才找到,而且还比较老,将就吧。key到搜到了几个。
GoogleSearch gs = new GoogleSearch();
gs.setKey(key); //注册的key
gs.setQueryString(keyword); //关键字
gs.setLanguageRestricts("lang_zh-CN"); //字符类型,同个keyword 不同的字符类型可能结果不完全相同
gs.setMaxResults(10); //一次获得的信息条数,最多10个
gs.setStartResult(1); //从哪一条记录开始查询
List list = new ArrayList();
int count = 0;
if (!"".equals(keyword)) {
GoogleSearchResult gsr = gs.doSearch();
count= gsr.getEstimatedTotalResultsCount(); //记录查询的次数
GoogleSearchResultElement[] gsreList = gsr.getResultElements();
for (int i = 0; i < gsreList.length; i++) {
GoogleSearchResultElement gsre = gsreList[i];
Object[] resulets = new Object[3];
resulets[0] = gsre.getTitle();
resulets[1] = gsre.getURL();
resulets[2] = gsre.getSnippet();
list.add(resulets);
}
}
因为google对每个key每天只支持1000次查询,若要获得更多的查询次数,除了交钱外,可以用个n个key来处理,理论上就有n*1000次,每个key的查询次数若超过1000会抛出异常,通过捕获这个异常来实现多个key的优化。