代码之家  ›  专栏  ›  技术社区  ›  Parand

Linux上的Headless,可脚本化的firefox/webkit?

  •  45
  • Parand  · 技术社区  · 15 年前

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

    我在python中尝试了简单的脚本,接着是更复杂的脚本,结果发现这个特定的网站正在使用一些令人讨厌的javascript和基于flash的机制进行登录,使我的方法变得毫无用处。

    然后我尝试了HTMLUnit,但这似乎也不起作用。我怀疑使用闪光灯是问题所在。

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

    要求如下:

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

    有没有适合无头、无X脚本浏览器的工具包?你试过这样的方法吗?如果有,你有什么智慧的话吗?

    7 回复  |  直到 6 年前
        1
  •  17
  •   Andy Gee    6 年前

    我用IE嵌入式浏览器完成了相关的任务(尽管它是带有隐藏浏览器组件面板的GUI应用程序)。实际上你可以吃任何 layout engine 切断输出逻辑。导航应该通过触发类似脚本的事件来完成。

    你可以使用 Crowbar .它是火狐(Gecko引擎)的无头版本。它将浏览器转换为可接受请求的RESTful服务器(“fetch url”)。所以它解析HTML,将其表示为DOM,等待所有脚本执行的定义延迟。

    它在Linux上工作。我想您可以使用JS和丰富的Xulrunner功能轻松地将其扩展到您的目标。

        2
  •  39
  •   Phil    14 年前

    怎么样 phantomjs ?

        3
  •  9
  •   nici    13 年前

    你试过了吗 Selenium 是吗?它允许您使用火狐的扩展来记录一个使用场景,稍后可以使用多种不同的方法回放。

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

        4
  •  6
  •   Michael Spector    13 年前

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

        5
  •  1
  •   hoju    14 年前

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

    要在Linux上运行Headless+脚本浏览器,可以使用 Qt webkit library . Here is an example use .

        6
  •  0
  •   Avery Richardson    13 年前

    为了完成这一点,我只需编写发布到couchdbs的chrome扩展。( example 及其 Futon )将coach添加到清单中的权限,以允许跨域XHR。

    (我到达这条线是为了寻找一个无头的替代我所做的事情;找到这条线之后,我将在某个时间尝试撬棍。)

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

        7
  •  -1
  •   JeffMiller    13 年前

    iMacros for Linux允许您编写firefox和chrome脚本: http://wiki.imacros.net/Linux