是否有任何python模块用于使用javascript呈现HTML页面并获取DOM对象?
我想解析一个使用javascript生成几乎所有内容的页面。
答案 0 :(得分:8)
这里最大的复杂因素是在浏览器之外模拟完整的浏览器环境。您可以使用像Rhino和SpiderMonkey这样的独立javascript解释器来运行javascript代码,但是它们不提供完整的浏览器环境来完整呈现网页。
如果我需要解决这样的问题,我首先会看看javascript是如何呈现页面的,它很可能是通过AJAX获取数据并使用它来呈现页面。然后,我可以使用像simplejson和httplib2这样的python库来直接获取数据并使用它,从而无需访问DOM对象。但是,这只是一种可能的情况,我不知道你正在解决的确切问题。
其他选项包括Łukasz提到的硒,某种webkit嵌入式疯狂,某种IE win32脚本疯狂,或者最后是基于pyxpcom的解决方案(增加了疯狂)。所有这些都有缺点,需要几乎完全运行的Web浏览器才能使用python,根据您的环境,这可能不是一个选项。
答案 1 :(得分:1)
您可以使用python-webkit。需要一个运行的glib和GTK,但这可能比包裹webkit的部分没有glib的问题要小。
我不知道它是否能满足你所需的一切,但我想你应该试一试。