【问题标题】:Unable to find some html elements using Jsoup无法使用 Jsoup 找到一些 html 元素
【发布时间】:2019-10-06 21:00:08
【问题描述】:

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

锚文本是登录

锚文本是职位搜索

锚文本是我的工作页面

锚的文字没问题

锚的文字没问题

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

锚文本是查看所有工作

锚文本是高级搜索

锚文本是添加组织

锚文本是添加位置

锚文本是添加工作字段

锚文本是取消

锚文本添加

锚的文字没问题

锚文本清晰

锚文本是保存此搜索

锚文本是单行的

锚文本是保存此搜索

锚文本是取消

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

锚文本已确认

锚文本是取消

锚的文字没问题

锚的文字没问题

锚的文字没问题

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

锚的文字是推荐朋友

锚文本是上一个

锚文本是下一个

锚的文字没问题

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

【问题讨论】:

  • 试试 doc.select("div#multiline-action-container > a#result-list-button")
  • 您尝试检索的数据不是初始 html 的一部分,而是在页面加载后由 JavaScript 设置的。您可以通过在浏览器中禁用 JavaScript 来检查它。 Jsoup 只获取静态 html,不执行 JavaScript 代码。此描述将帮助您找到另一个支持 javascript 的库:stackoverflow.com/tags/jsoup/info 或者您可以使用此答案中的提示:stackoverflow.com/a/50831894

标签: javascript java html css jsoup


【解决方案1】:

您尝试检索的数据不是初始 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-19
    • 1970-01-01
    • 2012-04-18
    • 1970-01-01
    • 2020-10-01
    • 2016-04-18
    • 1970-01-01
    • 2023-02-06
    相关资源
    最近更新 更多