我们如何获取使用Google自定义搜索API检索到的网址内容。 我是新手使用这样的API,在文档中没有给出可以解释它的示例代码。我使用的是google-api-services-customsearch-v1-rev36-1.17.0-rc.jar 这是我的代码。
protected Result[] doSearch() {
HttpRequestInitializer httpRequestInitializer = new HttpRequestInitializer(){
@Override
public void initialize(HttpRequest request) throws IOException {
}
};
JsonFactory jsonFactory = new JacksonFactory();
Customsearch csearch = new Customsearch( new NetHttpTransport(), jsonFactory, httpRequestInitializer);
Customsearch.Cse.List listReqst = csearch.cse().list(query.getQueryString());
listReqst.setKey(GOOGLE_KEY);
// set the search engine ID got from API console
listReqst.setCx("SEARCH_ENGINE_ID");
// set the query string
listReqst.setQ(query); //query contains search query string
// language chosen is English for search results
listReqst.setLr("lang_en");
// set hit position of first search result
listReqst.setStart((long) firstResult);
// set max number of search results to return
listReqst.setNum((long) maxResults);
Search result = list.execute();
// perform search
}
此后需要获取相应网站的片段和网址。我必须在这个功能中返回。我们怎样才能找回它们。
答案 0 :(得分:1)
在代码的最后一行中,它执行查询,返回结果,并将它们解析为“搜索”对象,如下所述:
https://developers.google.com/resources/api-libraries/documentation/customsearch/v1/java/latest/com/google/api/services/customsearch/model/Search.html
因此,要获取每个结果的URL和代码段,请执行以下操作:
List<Result> results = result.getItems();
for (Result r : results) {
String url = r.getLink();
String snippet = r.getSnippet();
}
要返回所有结果,根据上面的函数签名,您只需将列表转换为数组:
List<Result> results = result.getItems();
return results.toArray( new Result[results.size()] );