0

我正在使用 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。

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

4

1 回答 1

1

看起来他们正在检测爬虫,通常是通过您的用户代理,并发送不同的内容。尝试将您的用户代理字符串设置为标准浏览器的字符串,看看是否能解决您遇到的问题。

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

于 2012-09-01T01:13:31.090 回答