Java 当程序尝试启动与Google的连接时,HTTP响应403?

Java 当程序尝试启动与Google的连接时,HTTP响应403?,java,web-crawler,httpurlconnection,Java,Web Crawler,Httpurlconnection,我编写了一个测试web爬虫类,该类尝试搜索Google,如图所示: public class WebCrawler { String query; public WebCrawler(String search) { query = search; } public void connect() { HttpURLConnection connection = null; try { String url = "http://www.goog

我编写了一个测试web爬虫类,该类尝试搜索Google,如图所示:

public class WebCrawler {
String query;

public WebCrawler(String search)
{
    query = search;
}

public void connect()
{
    HttpURLConnection connection = null;
    try 
    {
        String url = "http://www.google.com/search?q=" + query;
        URL search = new URL(url);

        connection = (HttpURLConnection)search.openConnection();
        connection.setRequestMethod("GET");
        connection.setDoOutput(true);
        connection.setDoInput(true);
        connection.setUseCaches(false);
        connection.setAllowUserInteraction(false);
        connection.connect();

        BufferedReader read = new BufferedReader(new InputStreamReader(connection.getInputStream()));
        String line = null;
        while((line = read.readLine())!=null)
        {
            System.out.println(line);
        }

        read.close();
    }

    catch(MalformedURLException e)
    {
        e.printStackTrace();
    }
    catch(ProtocolException e)
    {
        e.printStackTrace();
    }
    catch(IOException e)
    {
        e.printStackTrace();
    }
    finally
    {
        connection.disconnect();
    }
}
}


但是,当我尝试使用测试查询“test”运行它时,我得到一个HTTP响应403错误——我遗漏了什么?这是我第一次用Java做任何网络工作。

403==禁止,这是有道理的,因为你是一个机器人,试图访问谷歌的一部分,他们不希望机器人访问。非常清楚地指定您不应该进行刮取/搜索


谷歌提供了一个每天可以进行100次查询的搜索引擎。它们提供了在大多数语言(包括Java)中如何与it接口的示例。除此之外,你还得付钱。

你可以更改
用户代理
标题。@SotiriosDelimanolis我完全知道有办法避开机器人检测。这些事情只会让你走到目前为止,谷歌做其他过滤。OP可能不知道。