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

前言

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

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

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

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

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

安装

PhantomJS

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

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

下载地址

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

下载源码

然后自己编译。

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

安装完成之后输入命令:

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安装。

pip install selenium

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

pip3 install selenium

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

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

python setup.py install

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

后记

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

PhantomJS

Selenium

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Python自动化测试

python自动化环境搭建

selenium是测试web应用程序的框架,selenium为没有测试脚本的人提供了(seleniumide)提供了录制/回放的工具,同时它也提供了特定...

723
来自专栏郭耀华‘s Blog

Vmware虚拟机安装Ubuntu 16.04 LTS(长期支持)版本+VMware tools安装

今天用VMware虚拟机安装了Ubuntu 16.04,过程用点繁琐,顺便又安装了VMware tools,这样就可以全屏显示Ubuntu系统了,下面是具体的安...

4235
来自专栏自由而无用的灵魂的碎碎念

使用Oracle SQL Developer 64位来访问Oracle 11g R2 64bit版本

之前,Oracle刚刚发布了Oracle 11g R2 for Windows版本。我的系统是Windows Server 2008 R2,所以安装的就是64位...

611
来自专栏Samego开发资源

Chrome扩展开发入门体验

1724
来自专栏前端人人

React多页面应用1(webpack4 开发环境搭建,包括热更新,api转发等)

本教程总共9篇,每日更新一篇,请关注我们!你可以进入历史消息查看以往文章,也敬请期待我们的新文章! 1、React多页面应用1(webpack4 开发环境搭建...

4993
来自专栏技术小黑屋

为Android程序申请权限注意

Android系统提供为程序提供了权限申请,即在manifest中使用uses-permission来申请即可.实现起来非常简单,但是有些问题会随之浮出水面. ...

821
来自专栏王大锤

xcode插件安装

1324
来自专栏编程

Python接口自动化-3-POST请求

POST请求 HTTP协议规定post提交的数据必须放在消息主体中,但是协议并没有规定必须使用什么编码方式。服务端通过是根据请求头中的Content-Type字...

2528
来自专栏木头编程 - moTzxx

PHP 开发学习[2] —— wamp memcache 的安装与扩展(Windows 64)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011415782/article/de...

934
来自专栏JetpropelledSnake

Django学习笔记之Ajax与文件上传

AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”。即使用Javascript语言与服...

611

扫码关注云+社区