用于渲染HTML和JavaScript的Python库

20 投票
2 回答
35980 浏览
提问于 2025-04-11 09:19

有没有什么Python模块可以用来渲染一个包含JavaScript的HTML页面,并且能返回一个DOM对象?

我想解析一个页面,这个页面几乎所有的内容都是通过JavaScript生成的。

2 个回答

1

你可以试试用 python-webkit 来实现这个功能。它需要运行 glib 和 GTK,但这可能比不使用 glib 来处理 webkit 的各个部分要简单一些。

我不确定它是否能满足你所有的需求,不过我觉得你可以试试看。

9

这里最大的难点是要在浏览器外模拟完整的浏览器环境。你可以使用像 RhinoSpiderMonkey 这样的独立 JavaScript 解释器来运行 JavaScript 代码,但它们并不能提供一个完整的浏览器环境来完全渲染网页。

如果我需要解决这样的问题,我会先看看 JavaScript 是如何渲染页面的,可能它是通过 AJAX 获取数据,然后用这些数据来渲染页面。

接着,我可以使用一些 Python 库,比如 ,直接获取数据并使用这些数据,这样就不需要访问 DOM 对象了。不过,这只是其中一种可能的情况,我不知道你具体要解决的问题是什么。

其他的选择包括 @Łukasz 提到的 selenium,还有一些其他的方式:

  • WebKit 嵌入的复杂情况,
  • IE win32 脚本的复杂情况,或者,
  • 基于 pyxpcom 的解决方案(还有更多复杂情况)。

这些方法的共同缺点是都需要一个几乎完全运行的网页浏览器供 Python 使用,这在某些环境下可能不是一个可行的选择。

撰写回答