如何使用Jsoup正确提取所需信息?

时间:2015-11-14 00:09:21

标签: java jsoup

最近,我决定使用 Jsoup 及其各种属性。为了做到这一点,我创建了一个小应用程序,它从以下网站收集信息(http://sunwell.pl)。

现在(如果您查看网站)我想获得有关玩家在线的信息。

HTML代码

<span class="zalogowany-jako-username" style="font-size: 20px;">Players online: 791</span>

我的代码

public void read(String webAddress) throws IOException {

        document = Jsoup
                .connect(webAddress)
                .userAgent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1042.0 Safari/535.21")
                .get();
        elements = document.select("span[class=zalogowany-jako-username]");
        System.out.println(elements);
    }

结果

执行程序后,它什么都没打印(幸运的是也没有错误)。我的问题是为什么?任何人都可以纠正我吗?

1 个答案:

答案 0 :(得分:3)

这是因为Jsoup 支持JavaScript。您尝试获取的html代码片段由JavaScript生成,因此它在浏览器中可见,但不适用于Jsoup,因为Jsoup无法呈现JavaScript 1}}并且只会检索纯HTML代码。

查看Jsoup是否可以检索内容的好方法是使用Document doc = Jsoup.connect(url).get()获取整个网页,然后执行System.out.println(doc.html())以查看检索到的内容。我已经使用您的网址完成了此操作,并发现您想要的tag不存在。

<强>更新

您可以做的一件事是使用Chrome浏览器的开发者工具,打开网络标签,选择XHR作为您的过滤器,然后刷新页面以查看网站的位置从中获取AJAX信息。

我已经在您的网站上完成了此操作,并发现网站从以下网址检索信息:&#34; http://sunwell.pl/getstatuscode.php &#34;。因此,请尝试使用此网址,而不是原始网址。这将为您提供所需的信息!

enter image description here enter image description here