我正在使用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&kind=100&nochange=true&allPrio=trueμltiple=true&allEx=true
</body>
</html>
这不是全部HTML。
我有什么建议可以解决它或为什么会发生这种情况?
答案 0 :(得分:1)
看起来他们通常是通过您的用户代理检测到一个抓取工具,并发送不同的内容。尝试setting your user agent string到标准浏览器的字符串,看看是否能解决您遇到的问题。
另一个潜在的问题,虽然我不认为这是问题,但通过AJAX加载的数据不会被JSoup下载。它解析了提供的HTML,但它不执行JavaScript,因此无法获得以后出现的任何额外内容。您可以使用可以处理和呈现HTML,CSS和JavaScript的PhantomJS之类的东西解决该问题,并且(理论上)会为您提供最终在浏览器中看到的实际HTML。