什么被称为模拟浏览器用于自动化目的的库?

3

我有一个自动化任务,需要将一些表单填写在一个网站上,这些表单的数据来自于word文档。为此,我需要一个模拟浏览器的库,可以让我编程进入网站并访问html元素。这个叫什么?有没有python或clojure的库可以实现这个功能的例子?


3
您所描述的被称为无头浏览器。 - Oded
requests 可能会有帮助。 - Pedro Romano
常用术语为“HTML抓取”或“Web抓取”。根据网站的不同,您可能需要使用更高级的HTML解析器和HTTP客户端来完成该任务。 - Seva Alekseyev
3个回答

4

你有几个选择:

  1. Mechanize
  2. Selenium

还有其他的选择,但我现在想不起来了(如果我记起来了,我会发帖子更新)。


有一个用于 Clojure 的 Selenium 封装器对我非常有用。 - MaiaVictor

4
你可能还想看看PhantomJS

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

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

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以了解其工作原理。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接