【发布时间】:2023-03-19 02:15:01
【问题描述】:
尝试从 DOM 解析 HTML 数据,当我使用 Chrome 的开发者工具时,我可以在控制台中看到该数据。当我在本地将页面保存为 HTML 并搜索目标数据时,找不到它。我已经阅读了一些关于静态 HTML 文件是如何被浏览器接收的,以及 Javascript 将如何以不同方式呈现它以进行演示的阅读。
具体示例:谷歌“nba”,结果在页面顶部包含一个表格,其中包含嵌套在<tbody> 中的当天所有预定比赛,如果您保存此页面,则 HTML 文件不包含@ 987654322@ 标签。尝试使用 BeautifulSoup4 和 Python 解析这个游戏表。
【问题讨论】:
-
我不认为你可以让 Chrome 以一种简单的方式保存当前的 DOM 状态。 IIRC Firefox 可以做到这一点,您可以使用 Web 检查器通过右键单击元素将 DOM 复制为 HTML 并将其保存到文件中。
-
除了让 BeautifulSoup4 作用于保存的文件之外,您还可以使用驱动真实浏览器(因此支持 Javascript/AJAX)的工具进行屏幕截图。 Ruby 和 PhantomJS 的 WATIR 和朋友都是这样工作的。
-
你也可以寻找合适的 API 来直接获取你想要的数据,而不是屏幕截图。
-
您可以为此编写一个简单的浏览器插件。这也将使解析数据变得容易,因为您可以使用 DOM 方法从页面上获取内容。
-
@millimoose,感谢您提供的信息,正如马特猜测的那样,我正在尝试以编程方式进行操作。 API 数据提供者不起作用,因为我只是以 NBA 为例来学习 HTML 解析。
标签: javascript html html-parsing beautifulsoup