评估本地html文件上的javascript(无浏览器)

时间:2013-05-04 14:16:10

标签: javascript python html screen-scraping eval

这是我正在努力工作的项目的一部分。

我想自动化一个Sharepoint站点,特别是从我和我的同事只有前端访问权限的数据库中提取数据。

我终于设法使用Python-NTLM来获得机械化(在python中),并通过修补其部分源代码来修复重复出现的错误。

现在,我希望是我最后的障碍:我需要提交的表单的一部分似乎是JavaScript函数的输出:并且看到...... Mechanize不支持javascript。我不想在python中自己模仿javascript功能,因为我理想地喜欢可重用的解决方案......

那么,任何人知道如何评估我从sharepoint下载的本地html上的javascript吗?我只想以某种方式运行javascript(以完成页面的加载),但没有浏览器。

我已经查看了selenium,但是我需要完成的工作量相当慢......我正在调查PyV8以尝试并自己评估javascript ...但肯定有一个应用程序或库(或任何)可以做到这一点?

2 个答案:

答案 0 :(得分:2)

好吧,最后我得出了以下可能的解决方案:

  • 运行Chrome无头并收集html输出(感谢koenp链接!)
  • 运行PhantomJS ,一个带有javascript api的无头浏览器
  • 运行HTMLUnit ;同样的事情,但对于Java
  • 使用Ghost.py ,一个基于python的无头浏览器(由于某种原因,我还没有看到任何建议!)
  • 根据Pyv8(谷歌v8 javascript引擎)编写一个基于DOM的javascript解释器,并将其添加到我当前的“半解决方案”中,并使用机械化。

现在,我已经决定使用Ghost.py或我自己修改的PySide / PyQT Webkit(鬼如何工作)来评估javascript,因为显然它们可以运行得非常快,如果你优化它们不下载图像并禁用GUI。

希望其他人会发现此列表很有用!

答案 1 :(得分:0)

嗯,你需要能够理解DOM并理解Javascript的东西,所以这归结为某种无头浏览器。也许你可以看一下selenium webdriver,但我想你已经这样做了。我并不认为有一种简单的方法可以在不运行实际浏览器引擎的情况下执行此操作。