腾讯云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 条评论
登录 后参与评论

相关文章

来自专栏happyJared

Python + Selenium 自动发布文章(一):开源中国

  还是说说出这个系列的起因吧。之前写完或是修改了Markdown文章,我还分别需要在多个平台进行发布或是更新维护这些内容,这些平台目前包括我的博客、简书、开源...

421
来自专栏前端人人

React项目配置6(前后端分离如何控制用户权限)

本教程总共6篇,每日更新一篇,请关注我们!你可以进入历史消息查看以往文章,也敬请期待我们的新文章! 1、React项目配置1(如何管理项目公共js方法)---...

3493
来自专栏数据之美

记一次诡异的 ssh 互信免密码登录失败

背景 因为 hadoop 环境需要 master 能免密码 ssh localhost,所以我们需要建立与本机 localhost 的互信,方法很简单: 1. ...

2835
来自专栏Timhbw博客

macOS Sierra下载地址

2016-06-1710:00:42 发表评论 416℃热度 天生爱折腾,ios10还是比较好下载的,WWDC2016刚结束,网上一就一大堆教程,然而macO...

2659
来自专栏闰土大叔

入职第三天:vue-loader在项目中是如何配置的

这是我入职第三天的故事,在写这篇文章之前,先来看看咱们今天要讲的主角——vue-loader,你对它了解多少?

811
来自专栏互联网杂技

入门webpack(下)

插件(Plugins) 插件(Plugins)是用来拓展Webpack功能的,它们会在整个构建过程中生效,执行相关的任务。 Loaders和Plugins常常被...

3176
来自专栏deed博客

Htacess文件

1565
来自专栏菩提树下的杨过

Flash/Flex学习笔记(7):FMS3.5基于IIS的安装

一般来讲,在windows上安装软件从来都不是什么难事儿,但FMS却在安装过程中"充满"了误导(好吧,其实也就是夸张的说法而已) 1.下载FMS3.5 http...

2016
来自专栏Python数据科学

Python爬虫之模拟登录拉勾网

模拟登录想必大家已经熟悉了,之前也分享过关于模拟登录wechat和京东的实战,链接如下:

812
来自专栏米扑专栏

Python+Selenium2 搭建自动化测试环境

27611

扫码关注云+社区