腾讯云Ubuntu搭建Selenium+PhantomJS环境过程

前言

大部分网页可以直接请求爬取,但是如果页面是JS渲染的该怎么办呢?如果我们单纯去分析一个个后台的请求,手动去摸索JS渲染的到的一些结果,那简直没天理了。所以,我们需要有一些好用的工具来帮助我们像浏览器一样渲染JS处理的页面。

其中有一个比较常用的工具,那就是PhantomJS。

PhantomJS是一个无界面的,可脚本编程的WebKit浏览器引擎。它原生支持多种web 标准:DOM 操作,CSS选择器,JSON,Canvas 以及SVG。

另外还有一个与PhantomJS配合使用的类库叫做Selenium,二者配合可以完成复杂JS渲染页面的爬取。

下面我们来讲解下二者的安装过程。

安装

PhantomJS

PhantomJS安装方法有两种,一种是下载源码之后自己来编译,另一种是直接下载编译好的二进制文件。然而自己编译需要的时间太长,而且需要挺多的磁盘空间。官方推荐直接下载二进制文件然后安装。

大家可以依照自己的开发平台选择不同的包进行下载

下载地址

当然如果你不嫌麻烦,可以选择

下载源码

然后自己编译。

下载解压之后将所在路径加到环境变量。

安装完成之后输入命令:

代码语言:javascript
复制
phantomjs -v

如果正常显示版本号,那么证明安装成功了。如果提示错误,那么请重新安装。

安装Selenium

Selenium 是什么?一句话,自动化测试工具。它支持各种浏览器,包括 Chrome,Safari,Firefox 等主流界面式浏览器,如果你在这些浏览器里面安装一个 Selenium 的插件,那么便可以方便地实现Web界面的测试。换句话说叫 Selenium 支持这些浏览器驱动。话说回来,PhantomJS不也是一个浏览器吗,那么 Selenium 支持不?答案是肯定的,这样二者便可以实现无缝对接了。

然后又有什么好消息呢?Selenium支持多种语言开发,比如 Java,C,Ruby等等,有 Python 吗?那是必须的!哦这可真是天大的好消息啊。

嗯,所以呢?安装一下 Python 的 Selenium 库,再安装好 PhantomJS,不就可以实现 Python+Selenium+PhantomJS 的无缝对接了嘛!PhantomJS 用来渲染解析JS,Selenium 用来驱动以及与 Python 的对接,Python 进行后期的处理,完美的三剑客!

有人问,为什么不直接用浏览器而用一个没界面的 PhantomJS 呢?答案是:效率高!

Selenium 2,又名 WebDriver,它的主要新功能是集成了 Selenium 1.0 以及 WebDriver(WebDriver 曾经是 Selenium 的竞争对手)。也就是说 Selenium 2 是 Selenium 和 WebDriver 两个项目的合并,即 Selenium 2 兼容 Selenium,它既支持 Selenium API 也支持 WebDriver API。

Selenium安装比较简单,如果有了Python,可以直接用pip安装。

代码语言:javascript
复制
pip install selenium

如果是Python3,则可以使用pip3。

代码语言:javascript
复制
pip3 install selenium

下载源码安装也可以,源码地址

解压之后直接运行如下命令即可:

代码语言:javascript
复制
python setup.py install

如此以来就完成了Selenium的安装。

后记

以上我们完成了PhantomJS和Selenium的安装,如果要学习更多内容,可以参考官方文档。

PhantomJS

Selenium