在本地html文件上评估javascript(不带浏览器)

在本地html文件上评估javascript(不带浏览器),javascript,python,html,screen-scraping,eval,Javascript,Python,Html,Screen Scraping,Eval,这是我工作项目的一部分 我想自动化Sharepoint网站,特别是从我和同事只有前端访问权限的数据库中提取数据 我最终设法使用PythonNTLM实现了mechanize(在python中),并修补了部分源代码以修复重复出现的错误 现在,我正处于我希望的最后一个障碍:我需要提交的表单的一部分似乎是JavaScript函数的输出:|瞧。。。Mechanize不支持javascript。我不想自己在python中模拟javascript功能,因为理想情况下我想要一个可重用的解决方案 那么,有人知道我

这是我工作项目的一部分

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

我最终设法使用PythonNTLM实现了mechanize(在python中),并修补了部分源代码以修复重复出现的错误

现在,我正处于我希望的最后一个障碍:我需要提交的表单的一部分似乎是JavaScript函数的输出:|瞧。。。Mechanize不支持javascript。我不想自己在python中模拟javascript功能,因为理想情况下我想要一个可重用的解决方案

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


我已经研究过硒元素,但对于我需要完成的工作量来说,它相当缓慢。。。我目前正在研究PyV8,以尝试自己评估javascript。。。但肯定有一个应用程序或库(或任何东西)可以做到这一点???

好吧,你需要一些既能理解DOM又能理解Javascript的东西,因此可以归结为某种类型的无头浏览器。也许你可以看一下,但我想你已经看过了。我不认为有一种简单的方法可以做到这一点,而不需要在实际的浏览器引擎中运行这些东西。

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

  • 运行Chrome headless并收集html输出(感谢koenp提供的链接!)
  • 运行PhantomJS,这是一款带有javascript api的无头浏览器
  • 运行HTMLUnit;同样的事情,但是对于Java
  • 使用Ghost.py,这是一种基于python的无头浏览器(由于某种原因,我还没有在任何地方看到它!)
  • 基于Pyv8(googlev8javascript引擎)编写一个基于DOM的javascript解释器,并使用mechanize将其添加到我当前的“半解决方案”中
现在,我决定使用Ghost.py或我自己对PySide/PyQT Webkit的修改(Ghost的工作原理)来评估javascript,因为如果您将它们优化为不下载图像并禁用GUI,它们显然可以运行得非常快


希望其他人会发现这个列表很有用

我在看幻影。。。看起来这可能是我需要的。是否可以通过IE或Chrome浏览器引擎加载网页而不实际打开浏览器?也许是通过COM接口或其他什么?我不确定,也许这有帮助,谢谢你的链接。如果这是一个个人项目,我肯定会走这条路。。。但是因为我想让它成为一个可部署到其他IT的解决方案,我想避免让Google Chrome成为解决方案的一个强制性组件?如果是这样的话,那就自己做吧。实际上,我在回答中写道,我希望尽可能避免模仿功能,这样我就可以在不同的网站上继续使用我的最终产品。