在csdn的极客头条中看见用java调用Google Search API的文章
原文地址为 http://www.programcreek.com/2012/05/call-google-search-api-in-java-program/
package com.cs.test.google;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.URL;
import java.net.URLEncoder;
import java.util.List;
import com.google.gson.Gson;
public class GoogleSearchTest {
public static void main(String[] args) throws IOException {
String address = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=";
String query = "programcreek";
String charset = "UTF-8";
URL url = new URL(address + URLEncoder.encode(query, charset));
Reader reader = new InputStreamReader(url.openStream(), charset);
GoogleResults results = new Gson().fromJson(reader, GoogleResults.class);
int total = results.getResponseData().getResults().size();
System.out.println("total: "+total);
// Show title and URL of each results
for(int i=0; i<=total-1; i++){
System.out.println("Title: " + results.getResponseData().getResults().get(i).getTitle());
System.out.println("URL: " + results.getResponseData().getResults().get(i).getUrl() + "\n");
}
}
}
class GoogleResults{
private ResponseData responseData;
public ResponseData getResponseData() { return responseData; }
public void setResponseData(ResponseData responseData) { this.responseData = responseData; }
public String toString() { return "ResponseData[" + responseData + "]"; }
static class ResponseData {
private List<Result> results;
public List<Result> getResults() { return results; }
public void setResults(List<Result> results) { this.results = results; }
public String toString() { return "Results[" + results + "]"; }
}
static class Result {
private String url;
private String title;
public String getUrl() { return url; }
public String getTitle() { return title; }
public void setUrl(String url) { this.url = url; }
public void setTitle(String title) { this.title = title; }
public String toString() { return "Result[url:" + url +",title:" + title + "]"; }
}
}
需要的 Gson的lib 可以到网上下载
但是 该情况每次自能返回四条数据,但是我们在实际情况中 却需要更多数据信息
这时 只要 将上面的Main方法换成下面的即可
//注意参数start 意思为从结果中的第几条开始 然后封装4条数据的GSon格式 返回
for (int i = 0; i < 20; i = i + 4) {
String address = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&start="+i+"&q=";
String query = "Programcreek";
String charset = "UTF-8";
URL url = new URL(address + URLEncoder.encode(query, charset));
Reader reader = new InputStreamReader(url.openStream(), charset);
GoogleResults results = new Gson().fromJson(reader, GoogleResults.class);
// Show title and URL of each results
for (int m = 0; m <= 3; m++) {
System.out.println("Title: " + results.getResponseData().getResults().get(m).getTitle());
System.out.println("URL: " + results.getResponseData().getResults().get(m).getUrl() + "\n");
}
}
先记录一下,以便以后用到