Google 以编程方式使用 Java 进行搜索
Google Search using Java programmatically
我可以使用 Java 代码执行 Google 搜索吗?例如,如果我搜索 "New York,",它会以 结构化 方式向我发送说明所有信息的数据,例如 JSON 或 XML数据?您能否分享代码或给我任何 API 是做什么的?
google知识搜索的示例代码。
使用 https://console.developers.google.com/apis/dashboard 生成 API > 凭据 > 创建凭据 > API 密钥
import java.util.List;
import org.json.simple.parser.JSONParser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.api.client.http.GenericUrl;
import com.google.api.client.http.HttpRequest;
import com.google.api.client.http.HttpRequestFactory;
import com.google.api.client.http.HttpResponse;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.http.javanet.NetHttpTransport;
@Service
public class GoogleSearchService {
@Async
public void searchGoogle(List<String> keywords){
try {
ObjectMapper mapper = new ObjectMapper();
HttpTransport httpTransport = new NetHttpTransport();
HttpRequestFactory requestFactory = httpTransport.createRequestFactory();
JSONParser parser = new JSONParser();
GenericUrl url = new GenericUrl("https://kgsearch.googleapis.com/v1/entities:search");
url.put("query", "Kolkata");
url.put("limit", "1");
url.put("indent", "true");
url.put("key", "xxxxxx");
HttpRequest request = requestFactory.buildGetRequest(url);
HttpResponse httpResponse = request.execute();
String responseString = httpResponse.parseAsString();
JsonNode node = mapper.readTree(responseString).get("itemListElement").get(0).get("result");
System.out.println(node.get("name"));
System.out.println(node.get("@type"));
System.out.println(node.get("detailedDescription").get("articleBody"));
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
我可以使用 Java 代码执行 Google 搜索吗?例如,如果我搜索 "New York,",它会以 结构化 方式向我发送说明所有信息的数据,例如 JSON 或 XML数据?您能否分享代码或给我任何 API 是做什么的?
google知识搜索的示例代码。
使用 https://console.developers.google.com/apis/dashboard 生成 API > 凭据 > 创建凭据 > API 密钥
import java.util.List;
import org.json.simple.parser.JSONParser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.api.client.http.GenericUrl;
import com.google.api.client.http.HttpRequest;
import com.google.api.client.http.HttpRequestFactory;
import com.google.api.client.http.HttpResponse;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.http.javanet.NetHttpTransport;
@Service
public class GoogleSearchService {
@Async
public void searchGoogle(List<String> keywords){
try {
ObjectMapper mapper = new ObjectMapper();
HttpTransport httpTransport = new NetHttpTransport();
HttpRequestFactory requestFactory = httpTransport.createRequestFactory();
JSONParser parser = new JSONParser();
GenericUrl url = new GenericUrl("https://kgsearch.googleapis.com/v1/entities:search");
url.put("query", "Kolkata");
url.put("limit", "1");
url.put("indent", "true");
url.put("key", "xxxxxx");
HttpRequest request = requestFactory.buildGetRequest(url);
HttpResponse httpResponse = request.execute();
String responseString = httpResponse.parseAsString();
JsonNode node = mapper.readTree(responseString).get("itemListElement").get(0).get("result");
System.out.println(node.get("name"));
System.out.println(node.get("@type"));
System.out.println(node.get("detailedDescription").get("articleBody"));
} catch (Exception ex) {
ex.printStackTrace();
}
}
}