【问题标题】:Google Custom search API: how to get search result contents description (e.g snippets) for URLGoogle 自定义搜索 API:如何获取 URL 的搜索结果内容描述(例如片段)
【发布时间】:2014-04-01 14:51:13
【问题描述】:

我们如何获取使用 google 自定义搜索 API 检索到的 URL 的内容。 我是使用此类 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
}

这里需要获取对应网站的sn-ps和url。我必须在这个函数中返回。我们怎样才能找回它们。

【问题讨论】:

    标签: java google-custom-search


    【解决方案1】:

    在代码的最后一行,它执行查询、返回结果并将其解析为“搜索”对象,如下所述:
    https://developers.google.com/resources/api-libraries/documentation/customsearch/v1/java/latest/com/google/api/services/customsearch/model/Search.html

    因此,要获取您刚刚执行的每个结果的 URL 和 sn-p:

    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()] );
    

    【讨论】:

    • 感谢您的帮助。我试过这个 List results = result.getItems();但出现此错误:Customsearch.Cse.List 类型不是通用的;它不能用参数 参数化。在快速修复中,它要求删除参数 .
    • 我对您的评论感到困惑 - 那行应该没问题。您确定您使用的是正确的“列表”:java.util.List?
    • yup 错误已修复。这是由于 List 的导入冲突而发生的。通过将其编写为 java.uti.List results = result.getItems(); 来修复它
    猜你喜欢
    • 2020-06-23
    • 1970-01-01
    • 1970-01-01
    • 2023-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-08
    相关资源
    最近更新 更多