通过Java中的Google Custom Search API V1获得超过10个结果

Joy*_*Joy 15 java google-search-api

我在Java中使用Google Custom Search API来获取Google的结果以响应查询.我在其他帖子的帮助下编写了这段代码,代码如下:

    url = new URL("https://www.googleapis.com/customsearch/v1?key="+key+ "&cx="+ cx +"&q="+    searchText+"&alt=json"+"&start="+0+"&num="+30);
    HttpURLConnection conn2 = (HttpURLConnection) url.openConnection();
    System.out.println("Connection opened!");
    conn2.setRequestMethod("GET");
    conn2.setRequestProperty("Accept", "application/json");
    BufferedReader br = new BufferedReader(new InputStreamReader(
    (conn2.getInputStream())));
Run Code Online (Sandbox Code Playgroud)

问题是,每当我使用上面的代码而没有num和start参数时,它正在正确执行,但只给出前10个结果.所以我使用了num和start参数.但他们正在制造问题.在这里,我无法理解将numstart参数放在url中的位置.它始终提供HTTP 400即错误请求.我已经阅读了"文档"页面,也没有明确说明将这两个参数放在Url中的位置.

所以,如果有人帮助我解决这个问题,我将非常感激.谢谢.

Bum*_*tle 25

你不能这样做.num只能是最多10个

https://developers.google.com/custom-search/json-api/v1/reference/cse/list#num

num - unsigned integer
要返回的搜索结果数.有效值是1到10之间的整数,包括1和10.

为了显示更多结果,Google建议进行多次调用,根据需要递增start参数:

https://developers.google.com/custom-search/json-api/v1/reference/cse/list#start

start - 无符号整数 要返回的第一个结果的索引.有效值是从1开始的整数(默认值),第二个结果是2,依此类推.例如,&start = 11给出第二页结果,默认"num"值为每页10个结果.注意:对于使用JSON API的任何查询,将返回不超过100个结果,即使超过100个文档与查询匹配,因此将(start + num)设置为大于100将产生错误.请注意,num的最大值为10.

  • 由Google精心设计.让我们做更多的请求,而不是返回更多的结果... -.- (7认同)