无法通过HTMLParser从网页获取所有内容

时间:2012-09-01 00:08:07

标签: java android html parsing jsoup

我正在使用Jsoup解析一个https://daisy.dsv.su.se/servlet/schema.MomentInfoRuta?id=261020&kind=100&nochange=true&allPrio=true&multiple=true&allEx=true

的网页

在该网页中,我可以在浏览器中看到一些内容,但是当我尝试使用Jsoup解析它时

Document doc = Jsoup.parse("https://daisy.dsv.su.se/servlet/schema.MomentInfoRuta?id=261020&kind=100&nochange=true&allPrio=true&multiple=true&allEx=true");
System.out.println(doc);

它会返回

<html>
<head></head>
<body>
https://daisy.dsv.su.se/servlet/schema.MomentInfoRuta?id=261020&amp;kind=100&amp;nochange=true&amp;allPrio=trueμltiple=true&amp;allEx=true
</body>
</html>

这不是全部HTML。

我有什么建议可以解决它或为什么会发生这种情况?

1 个答案:

答案 0 :(得分:1)

看起来他们通常是通过您的用户代理检测到一个抓取工具,并发送不同的内容。尝试setting your user agent string到标准浏览器的字符串,看看是否能解决您遇到的问题。

另一个潜在的问题,虽然我不认为这是问题,但通过AJAX加载的数据不会被JSoup下载。它解析了提供的HTML,但它不执行JavaScript,因此无法获得以后出现的任何额外内容。您可以使用可以处理和呈现HTML,CSS和JavaScript的PhantomJS之类的东西解决该问题,并且(理论上)会为您提供最终在浏览器中看到的实际HTML。