次のコードから取得:googleカスタム検索APIを使用するためのJavaコード。グーグルの結果ページの最初のページの最初の10件の結果を抽出することは正しく機能します。
public static void main(String[] args) throws Exception {
String key="YOUR KEY";
String qry="Android";
URL url = new URL("https://www.googleapis.com/customsearch/v1?
key="+key+ "&cx=013036536707430787589:_pqjad5hr1a&q="+ qry + "&alt=json");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Accept", "application/json");
BufferedReader br =
new BufferedReader(new InputStreamReader( (conn.getInputStream())));
String output;
System.out.println("Output from Server .... \n");
while ((output = br.readLine()) != null)
{
if(output.contains("\"link\": \""))
{
String link=output.substring(output.indexOf("\"link\": \"")+
("\"link\": \"").length(), output.indexOf("\","));
System.out.println(link); //Will print the google search links
}
}
conn.disconnect();
}
すべての結果ページをトラバースするにはどうすればよいですか?https://developers.google.com/custom-search/v1/using_restで検索すると、クエリのstart
パラメーターがインデックスを参照していることがわかりました。ループでこの値を変更することで、目的が達成されることは明らかです。 、ただし、ページごとにクエリのコストがかかります(これは、新しいクエリではないため、同じクエリですが、新しいページであるため、そうではないはずです)。また、グーグルがクエリが成功した場合、応答データにはtotalResults
合計結果の値が含まれていると述べていることがわかりましたが、それは推定数であると彼らは述べています。では、どのようにしてこのサービスの恩恵を受け、それらすべてをトラバースするために実際の結果数またはページ数を取得することができますか?すべてのページに新しいクエリを発行しても意味がありません。