45

我希望自动化一些网络交互,即从安全网站定期下载文件。这基本上涉及输入我的用户名/密码并导航到适当的 URL。

我在 Python 中尝试了简单的脚本,然后是更复杂的脚本,只是发现这个特定的网站正在使用一些令人讨厌的 javascript 和基于 flash 的登录机制,使我的方法毫无用处。

然后我尝试了 HTMLUnit,但这似乎也不想工作。我怀疑使用 Flash 是问题所在。

我真的不想再考虑它了,所以我倾向于编写一个实际浏览器的脚本来登录并获取我需要的文件。

要求是:

  • 在 linux 服务器上运行(即没有运行 X)。如果我真的需要 XI 可以做到这一点,但我不会高兴。
  • 要可靠。我想开始这件事,再也不去想它。
  • 可编写脚本。没什么太复杂的,但我应该能够告诉浏览器要采取的各种步骤和要访问的页面。

对于无头、无 X 可编写脚本的浏览器,是否有任何好的工具包?你有没有尝试过这样的事情,如果是这样,你有什么智慧的话吗?

4

6 回答 6

39

phantomjs呢?

于 2011-02-24T11:56:45.973 回答
17

我使用 IE 嵌入式浏览器完成了相关任务(尽管它是带有隐藏浏览器组件面板的 gui 应用程序)。实际上,您可以采用任何布局引擎并剪切输出逻辑。导航应该通过触发类似脚本的事件来完成。

您可以使用撬棍。它是 Firefox(Gecko 引擎)的无头版本。它将浏览器变成可以接受请求(“获取 url”)的 RESTful 服务器。因此它解析 html,将其表示为 DOM,等待所有脚本执行的定义延迟。

它适用于Linux。我想您可以使用 JS 和丰富的 XULrunner 功能轻松扩展它以实现您的目标。

于 2010-05-31T15:30:01.780 回答
9

你试过吗?它将允许您使用 Firefox 的扩展程序记录使用场景,以后可以使用多种不同的方法进行回放。

编辑:我刚刚意识到这是一个很晚的回应。:)

于 2011-03-08T16:02:42.147 回答
6

看看WebKitDriver。该项目包括 WebKit 的无头实现。

于 2011-05-16T05:56:58.030 回答
1

我不知道如何进行 Flash 交互(我也很感兴趣),但是对于 html/javascript,您可以使用Chickenfoot

要获得在 Linux 上运行的无头 + 可编写脚本的浏览器,您可以使用Qt webkit 库这是一个使用示例

于 2010-01-30T14:41:25.447 回答
0

为此,我只需编写发布到 CouchDBs 的 Chrome 扩展程序(示例及其被褥)。将 Couch 添加到清单中的权限以允许跨域 XHR。

(我来到这个线程是为了寻找我一直在做的无头替代方案;找到这个线程后,我将在某个时候尝试 Crowbar。)

另外,考虑到这个网站的奇异特性,我不禁想知道你是否可以利用一些安全漏洞来绕过 Flash 和 Javascript。

于 2011-11-02T15:09:33.117 回答