用于呈现 HTML 和 javascript 的 Python 库 [关闭]

Posted

技术标签:

【中文标题】用于呈现 HTML 和 javascript 的 Python 库 [关闭]【英文标题】:Python library for rendering HTML and javascript [closed] 【发布时间】:2010-09-12 16:07:56 【问题描述】:

是否有任何 python 模块用于使用 javascript 呈现 html 页面并返回 DOM 对象?

我想解析一个使用 javascript 生成几乎所有内容的页面。

【问题讨论】:

您能否将问题重命名为“在 python 中模拟浏览器 DOM”之类的问题 - 当前问题并不能真正反映问题。 【参考方案1】:

这里最大的复杂性是在浏览器之外模拟完整的浏览器环境。您可以使用独立的 javascript 解释器(如 Rhino 和 SpiderMonkey)来运行 javascript 代码,但它们不提供完整的浏览器环境来完整呈现网页。

如果我需要解决这样的问题,我会首先查看 javascript 是如何呈现页面的,它很可能是通过 AJAX 获取数据并使用它来呈现页面。然后,我可以使用 simplejson 和 httplib2 等 python 库直接获取数据并使用它,从而无需访问 DOM 对象。但是,这只是一种可能的情况,我不知道您要解决的确切问题。

其他选项包括 Łukasz 提到的 selenium、某种 webkit 嵌入式疯狂、某种 IE win32 脚本疯狂,或者最后,基于 pyxpcom 的解决方案(增加了疯狂)。所有这些都有一个缺点,即需要一个完全运行的网络浏览器才能运行 python,这可能不是一个选项,具体取决于您的环境。

【讨论】:

【参考方案2】:

您可能可以使用python-webkit。需要运行 glib 和 GTK,但这可能比不使用 glib 包装 webkit 的部分问题要小。

我不知道它是否能满足你的所有需求,但我想你应该试一试。

【讨论】:

我认为pywebkitgtk只能渲染html页面。渲染后是否可以获取xml源?没有足够的文档

以上是关于用于呈现 HTML 和 javascript 的 Python 库 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

用于快速呈现数千个DOM元素的Javascript库[关闭]

抓取通过JavaScript呈现的网页。 PhtantomJs还是其他任何工具?

JavaScript

如何将此 javascript 和 HTML 代码添加到 Angular 项目中?我可以从 javascript 函数中以角度呈现 html 吗?

HTML页面中javascript文件的加载顺序[重复]

Python Flask 页面未使用外部 CSS 和 Javascript 呈现