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

问题描述 投票:0回答:1

我正在写一个剪贴簿。当我在Chrome中使用inspect元素时,会看到以下内容:

code visible in chrome inspect element

但是当我运行代码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。非常感谢您的帮助。

java html dom web-scraping jsoup
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.