Jsoup.body()返回空体

时间:2018-06-01 16:17:24

标签: java html intellij-idea web jsoup

我正在尝试获取HTML的正文内容,但它只返回给我这个特定网站的空体,它可以是什么?

Document doc = Jsoup
            .connect("http://givatram.ort.org.il/%D7%9C%D7%95%D7%97-%D7%A9%D7%99%D7%A0%D7%95%D7%99%D7%99-%D7%9E%D7%A2%D7%A8%D7%9B%D7%AA/")
            .userAgent(
                    "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36")
            .timeout(0).followRedirects(true).execute().parse();
    Elements titles = doc.select(".entrytitle");

    System.out.println(doc.body());

1 个答案:

答案 0 :(得分:0)

我可以重现你的问题。如果我使用System.out.println(doc)检查整个文档,那么我可以看到head标记中有一个脚本,表示 连接到该站点。根据{{​​3}},Jsoup只是一个纯HTML解析器,不执行Javascript。也许网站的内容是通过Javascript加载的,这就是为什么主体是空的?

修改1:

我可以验证这一点。如果我使用this answer,一个JavaFx浏览器的小包装器,我可以看到正文:

BrowserEngine browser = BrowserFactory.getWebKit();
Page page = browser.navigate("http://givatram.ort.org.il/%D7%9C%D7%95%D7%97-%D7%A9%D7%99%D7%A0%D7%95%D7%99%D7%99-%D7%9E%D7%A2%D7%A8%D7%9B%D7%AA/");
System.out.println(page.getDocument().getBody());

所以看起来你想要做的事情很遗憾不可能用JSoup。