出于某种原因,在解析https://touch.facebook.com/messages
时并使用getElementById("threadlist_rows")
,即使ID肯定存在,我也会收到空。
它在html()
输出中,它可以在线尝试jsoup,我可以毫无问题地获得root
等其他ID。
同样的方法一直在为其他页面工作,唯一的区别是我可以看到有很多其他元素的id在正文中有threadlist_row_
的前缀。
getElementsByClass("aclb")
等其他各种选择器似乎也没有返回此页面的完整列表。
任何人都可以解释这个问题吗?
答案 0 :(得分:1)
在你的情况下,Jsoup不会像你期望的那样工作。加载页面后,JavaScript函数将呈现标识为threadlist_rows
的元素。 Jsoup不解释任何JavaScript代码 - 它只适用于静态HTML。你可以"模拟"通过调查页面源(Ctrl + U)或暂时关闭Web浏览器中的JavaScript,Jsoup看到了什么。
考虑使用替代方案,例如:
您还可以尝试执行本主题中提到的事情:https://stackoverflow.com/a/39174441/2194470(使用PhantomJS下载HTML并使用Jsoup操作DOM结构)。这可能是您的最佳选择。希望它有所帮助:)