用于呈现HTML和JavaScript的Python库

时间:2020-03-06 14:39:01  来源:igfitidea点击:

是否有任何python模块可使用javascript渲染HTML页面并获取DOM对象?

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

解决方案

这里最大的麻烦是模拟浏览器外部的完整浏览器环境。我们可以使用Rhino和SpiderMonkey等独立的javascript解释器来运行javascript代码,但它们不能提供像完整的浏览器一样的环境来完全呈现网页。

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

其他选项包括?ukasz提到的硒,某种Webkit嵌入式疯狂,某种IE win32脚本疯狂,或者最后是基于pyxpcom的解决方案(增加了疯狂)。所有这些都有一个缺点,那就是几乎需要一个完全运行的网络浏览器来运行python,根据环境,这可能不是一个选择。

我们可能可以使用python-webkit。需要运行glib和GTK,但这可能比不使用glib封装webkit的部分问题少。

我不知道它是否可以满足所有需求,但我想我们应该尝试一下。