大家好我想尝试从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"));
}
答案 0 :(得分:1)
根据the comments on your previous question:
即使在我指定协议后...只有google和aol不能正常工作,同样正在使用yahoo,bing和ask ....我的项目是实现元搜索引擎....我是能够从雅虎,bing和问...提取链接...但同样不适用于谷歌和AOL ......可能是什么原因.. ??
他们阻止了您的请求,因为您扮演的机器人/ leecher可能违反了他们的服务条款。他们经常要求他们的网站,他们不希望不必要地浪费他们的带宽给机器人/ leechers,实际上只需要一小部分响应。
使用他们的公共Web服务API,而不是解析整个网站的HTML。对谷歌而言,例如“Google Custom Search API”。其他搜索引擎提供商提供类似的Web服务。请注意,这些Web服务不会返回臃肿的HTML,而是使用JSON / XML解析器更容易解析/提取的紧凑JSON或XML数据。
答案 1 :(得分:0)
您需要指明协议:
Document document5 = Jsoup.connect("http://www.aol.com/").get();
答案 2 :(得分:0)
您的用户代理可能会丢失。添加用户代理:
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();