gpt4 book ai didi

java - 对象存在于 HTML 中,但我无法选择它

转载 作者:行者123 更新时间:2023-12-02 09:04:38 24 4
gpt4 key购买 nike

我正在写一个爬虫。当我在 chrome 中使用检查元素时,我看到以下内容:

code visible in chrome inspect element

但是当我运行代码 Elements data = doc.select("div.item-header"); 并打印对象 data 时,我看到该对象其中包含以下 html block :

<div class="item-header"> 
<h1 class="text size-20">Snake print bell sleeves top</h1>
<div class="text size-12 muted brandname ma_top5">
<!-- data here is irrelevant -->
</div>
</div>

所以,我不明白的是,为什么我的代码得到的 html 与 chrome 的检查元素中可见的 html 不同?我在这里缺少什么?

我使用的是java,库是Jsoup。非常感谢任何帮助。

最佳答案

网站由 HTML 和 JavaScript 代码组成。通常,JavaScript 在页面加载时执行,并且页面源可能会被修改或通过异步 AJAX 调用加载一些附加内容。 Jsoup 无法解析 Javascript,因此只能解析原始 HTML 文档。
不要使用 Chrome 的 Inspect 选项,因为它会在可能的转换后呈现 HTML。使用查看源代码 (CTRL+U)。这样您将看到未经 JavaScript 修改的原始 HTML 源(您也可以尝试在禁用 JavaScript 的情况下重新加载页面)。 Jsoup 下载并解析该原始源。
如果是这种情况,并且您确实想要解析 JavaScript 加载的数据,请尝试在 Chrome 的 Network 选项卡中观察 XHR 请求。您可以检查此答案以了解我的意思:How to Load Entire Contents of HTML - Jsoup

关于java - 对象存在于 HTML 中,但我无法选择它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59914015/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com