我正在写一个剪贴簿。当我在Chrome中使用inspect元素时,会看到以下内容:
但是当我运行代码Elements data = doc.select("div.item-header");
并打印对象data时,我看到该对象中包含以下html块:
<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的inspect元素中的HTML不同?我在这里想念什么?
我正在使用Java,该库是Jsoup。非常感谢您的帮助。
网站由HTML和JavaScript代码组成。通常,在加载页面时会执行JavaScript,并有可能通过异步AJAX调用修改页面的源代码或加载一些其他内容。 Jsoup无法解析Java脚本,因此它只能解析原始HTML文档。请勿使用Chrome的Inspect
选项,因为它会在可能的转换后显示HTML。使用View source
(CTRL + U)。这样,您将看到原始HTML源未被JavaScript修改(您也可以尝试在禁用JavaScript的情况下重新加载页面)。 Jsoup下载并解析了原始资源。如果是这种情况,并且您确实要解析JavaScript加载的数据,请尝试观察Chrome XHR
标签中的Network
请求。您可以检查此答案以了解我的意思:How to Load Entire Contents of HTML - Jsoup