使用Jsoup无法找到一些html元素

时间:2019-05-20 13:17:40

标签: javascript java html css jsoup

我正在尝试使用Jsoup在此页面(https://gwlabs.taleo.net/careersection/gw_ext_career_section/jobsearch.ftl)中查找与“应用”按钮相对应的元素。我尝试使用Document.getElementsMatchingOwnText(“ Apply”),但未返回元素。我试图列出所有锚元素并打印其文本,但看不到带有文本“ Apply”的任何元素。输出如下

锚文本为“登录”

锚文本是求职

锚文本是我的工作页

锚文本可以

锚文本可以

锚文本是提交朋友的个人资料

锚文本是“查看所有作业”

锚文本为高级搜索

锚文本为添加组织

锚文本为添加位置

锚文本为“添加作业字段”

锚文本为“取消”

锚文本为添加

锚文本可以

锚文本是清晰的

锚文本为“保存此搜索”

锚文本为单行

锚文本为“保存此搜索”

锚文本为“取消”

锚文本是“访问我的保存的搜索”

锚文本为确认

锚文本为“取消”

锚文本可以

锚文本可以

锚文本可以

锚文本是您还可以查看所有可用的职位空缺。

锚文本是推荐朋友

锚文本是上一页

锚文本为下一个

锚文本可以

相同的方法为https://healthfirst.taleo.net/careersection/hf_ext_cs/jobsearch.ftl?lang=en提供了预期的结果 我不知道为什么会这样,请有人看看

1 个答案:

答案 0 :(得分:2)

您要检索的数据不是初始html的一部分,而是在页面加载后由JavaScript设置的。您可以通过禁用浏览器中的JavaScript进行检查。 Jsoup仅获取静态html,不执行JavaScript代码。

Jsoup当前不支持JavaScript,这意味着使用Jsoup进行解析时,在页面上加载了JavaScript的页面将不可用。

如果要获取此类动态加载的数据,可以:

-使用其他选项,例如HtmlUnit,Selenium WebDriver或ui4j。

-使用网站的API(如果提供的话)

-要了解网站从何处加载数据,通常您要做的就是在某处发送HTTP请求以将数据作为JSON获取。

更多详细信息可以在这里找到: https://stackoverflow.com/tags/jsoup/info

或者您可以使用以下答案的提示: https://stackoverflow.com/a/50831894