繁体   English   中英

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

[英]How to properly extract desired information using 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);
    }

结果

执行完程序后,它什么也不打印(幸运的是也没有错误)。 我的问题是为什么? 谁能纠正我?

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

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


更新:

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

我已经对您的网站进行了此操作,发现该网站从以下URL中检索信息:“ http://sunwell.pl/getstatuscode.php ”。 因此,请尝试使用此网址,而不是原始网址。 这将为您获取所需的信息!

在此处输入图片说明 在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM