1

这是我正在为工作而开展的一个项目的一部分。

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

我终于设法让机械化(在 python 中)使用 Python-NTLM 完成此任务,并通过修补部分源代码来修复重复发生的错误。

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

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

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

4

2 回答 2

2

好吧,最后我归结为以下可能的解决方案:

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

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

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

于 2013-05-05T13:33:35.413 回答
0

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

于 2013-05-04T14:22:52.767 回答