java - 谷歌搜索并用java打印结果

标签 java url

在这里,我希望在 Google 上执行搜索,并使用终端将结果作为单独的输出文件获取。在终端中,只会输入要搜索的关键字。这就是我所做的。

import java.io.*;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Scanner;


public class GOOGLE {

    public static void main(String[] args) {

        Scanner scan = new Scanner(System.in);
        System.out.println("Enter search key");
        String key = scan.nextLine();
        String keyUpdated = key.replaceAll("\\s", "+");

        System.out.println(keyUpdated);

        try {

            URL url = new URL("https://www.google.lk/search?q=" + keyUpdated);

            BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
            BufferedWriter writer = new BufferedWriter(new FileWriter(key + ".html"));

            String line;

            while ((line = reader.readLine()) != null) {

                writer.write(line);

                writer.newLine();
            }


            reader.close();
            writer.close();
        } catch (MalformedURLException e) {

            e.printStackTrace();

        } catch (IOException e) {

            e.printStackTrace();

        }

    }

}

这就是我输入“计算机科学”作为关键字时得到的结果。

java.io.IOException: Server returned HTTP response code: 403 for URL: https://www.google.lk/search?q=computer+science
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1876)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1474)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)
    at java.net.URL.openStream(URL.java:1045)
    at GOOGLE.main(Google.java:23)

最佳答案

浏览器签名导致请求被拒绝。

看看这个线程:

Why do I get a 403 error when I try open a URL

关于java - 谷歌搜索并用java打印结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48479159/

相关文章:

java - OSGI号导入限制

java - 如何修复错误 "Subject class type invalid."

java - 是否有用于 Java 的事件驱动的 JSON REST 客户端 API?

javascript - 谷歌+网址分享

asp.net - 如何永久关闭 View 状态?

android - 有没有更快的方法从网上下载一个页面到一个字符串?

c# - 将当前页面 url 作为 url 中的参数传递

java - 从 URL 返回的 XML 未正确解析

java - 我应该如何处理 AI 线程和主游戏循环之间的通信?

c# - DotNetOpenAuth - 如何使其在负载均衡器后面工作?