Java 以编程方式检索Google结果

Java 以编程方式检索Google结果,java,Java,如何创建一个Java程序,将单词“Hello World”输入Google,然后从结果页面检索html?我不想用机器人课 URL url = new URL("http://www.google.com/search?q=hello+world"); url.openStream(); // returns an InputStream which you can read with e.g. a BufferedReader 如果你以这种方式重复向谷歌提出编程请求,他们会很快将你重定向到“对

如何创建一个Java程序,将单词“Hello World”输入Google,然后从结果页面检索html?我不想用机器人课

URL url = new URL("http://www.google.com/search?q=hello+world");
url.openStream(); // returns an InputStream which you can read with e.g. a BufferedReader
如果你以这种方式重复向谷歌提出编程请求,他们会很快将你重定向到“对不起,你看起来像个机器人”页面

你最好使用谷歌的

如果你以这种方式重复向谷歌提出编程请求,他们会很快将你重定向到“对不起,你看起来像个机器人”页面


您最好使用Google的。

要通过程序执行Google搜索,您需要开发人员api密钥和自定义搜索引擎id。您可以从下面的URL获取开发人员api密钥和自定义搜索引擎id

https://cloud.google.com/console/project“>谷歌开发者控制台 https://www.google.com/cse/all“>谷歌自定义搜索

在你得到钥匙和身份证后,在下面的程序中使用它。使用密钥更改apiKey和customSearchEngineKey

有关详细信息,请访问-

导入java.io.BufferedReader; 导入java.io.InputStreamReader; 导入java.net.HttpURLConnection; 导入java.net.URL; 公共类自定义谷歌搜索{ 最终静态字符串apiKey=“aizasyafmfdhifk783assdbq3lwqdl7uosbd QnCnGbY”; 最终静态字符串customSearchEngineKey=“00070362344324199532843:wkrTYvnft8ma”; 最终静态字符串searchURL=”https://www.googleapis.com/customsearch/v1?"; 公共静态字符串搜索(字符串pUrl){ 试一试{ URL=新URL(pUrl); HttpURLConnection connection=(HttpURLConnection)url.openConnection(); BufferedReader br=新的BufferedReader(新的InputStreamReader(connection.getInputStream()); 弦线; StringBuffer=新的StringBuffer(); 而((line=br.readLine())!=null){ buffer.append(行); } 返回buffer.toString(); }捕获(例外e){ e、 printStackTrace(); } 返回null; } 私有静态字符串buildSearchString(字符串searchString、int start、int numOfResults){ String-toSearch=searchURL+“key=“+apiKey+”&cx=“+customSearchEngineKey+”&q=“; //将搜索查询中的空格替换为+ String newSearchString=searchString.replace(“,“%20”); toSearch+=新搜索字符串; //将响应格式指定为json toSearch+=“&alt=json”; //指定起始结果编号 toSearch+=“&start=“+start; //从起始位置指定所需的结果数 toSearch+=“&num=“+numOfResults; System.out.println(“Seacrh URL:+toSearch”); 回归研究; } 公共静态void main(字符串[]args)引发异常{ 字符串url=buildSearchString(“BasicsBehind”,1,10); 字符串结果=搜索(url); 系统输出打印项次(结果); } }
要通过程序执行google搜索,您需要开发人员api密钥和自定义搜索引擎id。您可以从下面的URL获取开发人员api密钥和自定义搜索引擎id

https://cloud.google.com/console/project“>谷歌开发者控制台 https://www.google.com/cse/all“>谷歌自定义搜索

在你得到钥匙和身份证后,在下面的程序中使用它。使用密钥更改apiKey和customSearchEngineKey

有关详细信息,请访问-

导入java.io.BufferedReader; 导入java.io.InputStreamReader; 导入java.net.HttpURLConnection; 导入java.net.URL; 公共类自定义谷歌搜索{ 最终静态字符串apiKey=“aizasyafmfdhifk783assdbq3lwqdl7uosbd QnCnGbY”; 最终静态字符串customSearchEngineKey=“00070362344324199532843:wkrTYvnft8ma”; 最终静态字符串searchURL=”https://www.googleapis.com/customsearch/v1?"; 公共静态字符串搜索(字符串pUrl){ 试一试{ URL=新URL(pUrl); HttpURLConnection connection=(HttpURLConnection)url.openConnection(); BufferedReader br=新的BufferedReader(新的InputStreamReader(connection.getInputStream()); 弦线; StringBuffer=新的StringBuffer(); 而((line=br.readLine())!=null){ buffer.append(行); } 返回buffer.toString(); }捕获(例外e){ e、 printStackTrace(); } 返回null; } 私有静态字符串buildSearchString(字符串searchString、int start、int numOfResults){ String-toSearch=searchURL+“key=“+apiKey+”&cx=“+customSearchEngineKey+”&q=“; //将搜索查询中的空格替换为+ String newSearchString=searchString.replace(“,“%20”); toSearch+=新搜索字符串; //将响应格式指定为json toSearch+=“&alt=json”; //指定起始结果编号 toSearch+=“&start=“+start; //从起始位置指定所需的结果数 toSearch+=“&num=“+numOfResults; System.out.println(“Seacrh URL:+toSearch”); 回归研究; } 公共静态void main(字符串[]args)引发异常{ 字符串url=buildSearchString(“BasicsBehind”,1,10); 字符串结果=搜索(url); 系统输出打印项次(结果); } }
你为什么要这样做?如果你只是想得到谷歌的搜索结果,你可能会更好 import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; public class CustomGoogleSearch { final static String apiKey = "AIzaSyAFmFdHiFK783aSsdbq3lWQDL7uOSbnD-QnCnGbY"; final static String customSearchEngineKey = "00070362344324199532843:wkrTYvnft8ma"; final static String searchURL = "https://www.googleapis.com/customsearch/v1?"; public static String search(String pUrl) { try { URL url = new URL(pUrl); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream())); String line; StringBuffer buffer = new StringBuffer(); while ((line = br.readLine()) != null) { buffer.append(line); } return buffer.toString(); } catch (Exception e) { e.printStackTrace(); } return null; } private static String buildSearchString(String searchString, int start, int numOfResults) { String toSearch = searchURL + "key=" + apiKey + "&cx=" + customSearchEngineKey + "&q="; // replace spaces in the search query with + String newSearchString = searchString.replace(" ", "%20"); toSearch += newSearchString; // specify response format as json toSearch += "&alt=json"; // specify starting result number toSearch += "&start=" + start; // specify the number of results you need from the starting position toSearch += "&num=" + numOfResults; System.out.println("Seacrh URL: " + toSearch); return toSearch; } public static void main(String[] args) throws Exception { String url = buildSearchString("BasicsBehind", 1, 10); String result = search(url); System.out.println(result); } }