Java Jsoup链接提取

Java Jsoup链接提取,java,jsp,jsoup,Java,Jsp,Jsoup,大家好,我正试图从aol提取所有的锚链接,但它不起作用。同样的代码也适用于yahoo bing。问题是问题出在哪里 Document document5 = Jsoup.connect("www.aol.com").get(); Elements links5 = document5.select("a"); for (Element link5 : links5) { out.println(link5.attr("href")); } 您需要指明协议: Document docu

大家好,我正试图从aol提取所有的锚链接,但它不起作用。同样的代码也适用于yahoo bing。问题是问题出在哪里

Document document5 = Jsoup.connect("www.aol.com").get();
Elements links5 = document5.select("a");

for (Element link5 : links5) {
    out.println(link5.attr("href"));
}

您需要指明协议:

Document document5 = Jsoup.connect("http://www.aol.com/").get();
根据:

即使在我指定了协议之后…只有谷歌和aol不起作用,雅虎、bing和ask也不起作用。。。。我的项目是实现一个元搜索引擎……我能够从雅虎、bing和ask中提取链接……但谷歌和aol无法做到这一点……原因可能是什么

他们阻止了你的请求,因为你的行为可能违反他们的服务条款。他们的网站经常被请求访问,他们不想不必要地将带宽浪费在机器人/机器人上,而机器人/机器人实际上只需要一小部分响应


使用他们的公共web服务API,而不是解析整个网站的HTML。对于谷歌来说,这就是一个例子。其他搜索引擎提供商也提供类似的web服务。请注意,这些web服务不会返回臃肿的HTML,而是使用JSON/XML解析器更容易解析/提取的压缩JSON或XML数据。

您的用户代理可能缺失。添加用户代理:

String USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36";
Jsoup.connect(link).userAgent(USER_AGENT).get();

当使用正常链接时,它工作,但不使用此链接: