什么称为允许模拟浏览器以实现自动化目的的库?

时间:2012-09-24 19:34:02

标签: python html clojure web automation

我有一个自动化任务,我需要使用word文档中的数据填充站点中的多个表单。为此我需要一个模拟浏览器的库,允许我以编程方式输入一个站点并访问html元素。这个叫什么?是否存在为python或clojure执行此操作的库的示例?

3 个答案:

答案 0 :(得分:4)

您有几个选择:

  1. Mechanize
  2. Selenium
  3. 还有其他人,但我现在不能记住它们(当我记得更多的时候会发布)

答案 1 :(得分:4)

您可能也想看看PhantomJS

  

PhantomJS是一款带有JavaScript API的无头WebKit。它有快速和   对各种Web标准的本机支持:DOM处理,CSS选择器,   JSON,Canvas和SVG。

如果您只想提交表单,可能更容易伪造请求并使用urllib2发送。

答案 2 :(得分:1)

现在 Clojure http-kit是我最喜欢的。它只是使http交互非常容易。

; taken from github
(defn on-response [resp]
  ;; {:status 200 :body "....." :headers {:key val :key val}}
  (println resp))

;;; initialize, timeout is 40s, and default user-agent
 (http/init :timeout 40000 :user-agent "http-kit/1.1")

;;; other params :headers :proxy binary? keyify?
(http/get {:url "http://shenfeng.me" :cb on-response})

;;; other params :headers :proxy binary? keyify?
(http/post {:url "http://example/"
        :cb on-response
        :body {"name" "http-kit" "author" "shenfeng"}  :binary? true})

我还使用了CasperJs,它只是让任何无头浏览成为可能。此外,您可以在自动浏览的同时与客户端javascript交互。 我发现唯一的缺点是将所有这些与现有代码集成起来有点困难,但作为一个独立的工具,它是完美的。它还支持coffescript和javascript脚本。

查看Quickstart以了解其工作原理。