Python 爬虫:Selenium 安装与测试

2019 年 9 月 16 日 计算机与网络安全

一次性付费进群,长期免费索取教程,没有付费教程。

微信群回复公众号:微信群QQ群460500587

 教程列表  见微信公众号底部菜单 |   本文底部有推荐书籍 

微信公众号:计算机与网络安全

ID:Computer-network


Python网络爬虫中最麻烦的不是那些需要登录才能获取数据的网站,而是那些通过JavaScript获取数据的站点。PythonJavaScript的支持不太好。想用Python获取网站中JavaScript返回的数据,唯一的方法就是模拟浏览器了。这个模拟浏览器跟Mechanize模块稍有不同,Mechanize模块并不支持JavaScript,所以这里需要一款可以模拟真实浏览器的模块——Selenium模块。


1、安装Selenium模块


Selenium是一套完整的Web应用程序测试系统,包含了测试的录制(Selenium IDE)、编写及运行(Selenium Remote Control)和测试的并行处理(Selenium Grid)。Selenium的核心Selenium Core基于JsUnit,完全由JavaScript编写,因此可运行于任何支持JavaScript的浏览器上。


(1)Windows下安装Selenium模块


Windows中安装Selenium必须使用管理员权限。


Windows中安装Selenium模块可以采用最简单的pip安装,执行命令:


python -m pip install -U selenium


执行结果如图1所示。

图1  Windows安装Selenium


Windows中安装Selenium完毕,可以直接使用了。


(2)Linux下安装Selenium模块


Linux中安装软件尽可能地使用apt-get,这样便于管理软件。执行命令:


apt-get install python3-selenium


执行结果如图2所示。

图2  Linux安装Selenium


Linux中安装Selenium完毕。


2、浏览器选择


在编写Python网络爬虫时,主要用到Selenium的Webdriver。Selenium.Webdrive不可能支持所有的浏览器,也没必要支持所有的浏览器。实际上目前流行的浏览器核心也就是那么几种。先看看Selenium.Webdriver支持哪几种浏览器。

(1)Webdriver支持列表


查看模块的功能,最简单也是最方便的方法就是直接使用help命令。打开cmd.exe工具,执行命令:


python

from selenium import webdriver

help(webdriver)


执行结果如图3所示。

图3  Webdriver支持列表


在以上列表中,android和blackberry是移动端的浏览器,可以先去掉。移动端的浏览器虽然也支持JavaScript,但与PC端的浏览器根本是两回事。common和support也可以先去掉,剩下的只有Chrome、Edge、Firefox、IE、Opera、Phantomjs和Safari了。Chrome、Dege、Firefox、IE、Opera、Safari比较常见,而PhantomJS则有些名不见经传。


PhantomJS是一个基于WebKit的服务器端JavaScript API。它全面支持Web而不需浏览器支持,其快速、原生支持各种Web标准:DOM处理、CSS选择器、JSON、Canvas和SVG。PhantomJS可以用于页面自动化、网络监测、网页截屏以及无界面测试等。


无界面意味着开销小,也意味着速度快。网上有牛人测试过,使用Selenium调用上面的浏览器,速度前三分别是PhantomJS、Chrome和IE(remote调用HtmlUnit速度才是最快的,但HtmlUnit对JavaScript的支持不太好),开销小、速度快对JavaScript的支持也不错。唯一的缺点是没有GUI,但在服务器下运行程序时,这又成了优点。所以无须犹豫,就选PhantomJS了。事实上,在爬行JavaScript才能返回数据的网站时,没有比Selenium和PhantomJS更适合的组合了。


(2)Windows下安装PhantomJS


PhantomJS的官网主页是http://phantomjs.org/。在浏览器中打开主页,单击Download V2.1按钮进入下载页面,如图4所示。

图4  PhantomJS官网主页


进入下载页面后,选择Windows版本的PhantomJS下载软件,如图5所示。

图5  下载Windows版本PhantomJS


因为未知的原因,直接用浏览器下载PhantomJS速度极慢。有时根本就没反应,建议使用迅雷下载PhantomJS。迅雷上若有用户曾下载过PhantomJS,后面的迅雷用户再次下载速度就很快了。

下载完成后,解压压缩包,然后将exe文件加入系统路径中就可以了。安装程序已自动将Python的路径加入到系统路径中了,反正PhantomJS也是配合Python使用的,直接将解压后的PhtomJS.exe复制到Python的目录中就可以了,如图6所示。

图6  Windows设置PhantomJS环境


Python环境中测试一下,如图7所示。

图7  Windows中测试PhantomJS环境


Windows下的PhantomJS环境已配置好,可以直接使用了。


(3)Linux下安装PhantomJS


还是打开PhantomJS官网的下载页面,选择合适的版本,使用迅雷下载,如图8所示。

图8  下载Linux版本PhantomJS


将下载好的压缩文件上传到Linux后解压缩,然后将可执行文件复制到系统路径/usr/local/bin文件夹下(Linux的系统路径有很多,随意选一个即可)。打开Putty,连接到Linux上,执行命令:


tar jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2 -C /usr/local/

ln -s phantomjs-2.1.1-linux-x86_64/bin/phantomjs/usr/local/bin/phantomjs

ls -l /usr/local/bin/


执行结果如图9所示。

图9  Linux中设置PhantomJS环境


Python环境中测试一下,执行命令:


python3 

from selenium import webdriver

derver=webdriver.PhantomJS()


执行结果如图10所示。

图10  Linux中测试PhantomJS环境


Linux下的PhantomJS环境已配置好,可以直接使用了。


微信公众号:计算机与网络安全

ID:Computer-network


【推荐书籍】

登录查看更多
0

相关内容

JavaScript 是弱类型的动态脚本语言,支持多种编程范式,包括面向对象和函数式编程。
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
190+阅读 · 2020年6月29日
【实用书】Python技术手册,第三版767页pdf
专知会员服务
229+阅读 · 2020年5月21日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
115+阅读 · 2020年5月10日
【干货书】流畅Python,766页pdf,中英文版
专知会员服务
223+阅读 · 2020年3月22日
算法与数据结构Python,369页pdf
专知会员服务
160+阅读 · 2020年3月4日
Kali Linux 渗透测试:密码攻击
计算机与网络安全
15+阅读 · 2019年5月13日
GitHub 热门:各大网站的 Python 爬虫登录汇总
机器学习算法与Python学习
9+阅读 · 2019年3月20日
Python | Jupyter导出PDF,自定义脚本告别G安装包
程序人生
7+阅读 · 2018年7月17日
我是一个爬虫
码农翻身
12+阅读 · 2018年6月4日
Python为啥这么牛?
Python程序员
3+阅读 · 2018年3月30日
为什么你应该学 Python ?
计算机与网络安全
4+阅读 · 2018年3月24日
Python 爬虫实践:《战狼2》豆瓣影评分析
数据库开发
5+阅读 · 2018年3月19日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
Python NLP 入门教程
大数据技术
19+阅读 · 2017年10月24日
Arxiv
34+阅读 · 2019年11月7日
Embedding Logical Queries on Knowledge Graphs
Arxiv
3+阅读 · 2019年2月19日
Arxiv
19+阅读 · 2018年10月25日
Arxiv
5+阅读 · 2018年6月12日
VIP会员
相关VIP内容
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
190+阅读 · 2020年6月29日
【实用书】Python技术手册,第三版767页pdf
专知会员服务
229+阅读 · 2020年5月21日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
115+阅读 · 2020年5月10日
【干货书】流畅Python,766页pdf,中英文版
专知会员服务
223+阅读 · 2020年3月22日
算法与数据结构Python,369页pdf
专知会员服务
160+阅读 · 2020年3月4日
相关资讯
Kali Linux 渗透测试:密码攻击
计算机与网络安全
15+阅读 · 2019年5月13日
GitHub 热门:各大网站的 Python 爬虫登录汇总
机器学习算法与Python学习
9+阅读 · 2019年3月20日
Python | Jupyter导出PDF,自定义脚本告别G安装包
程序人生
7+阅读 · 2018年7月17日
我是一个爬虫
码农翻身
12+阅读 · 2018年6月4日
Python为啥这么牛?
Python程序员
3+阅读 · 2018年3月30日
为什么你应该学 Python ?
计算机与网络安全
4+阅读 · 2018年3月24日
Python 爬虫实践:《战狼2》豆瓣影评分析
数据库开发
5+阅读 · 2018年3月19日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
Python NLP 入门教程
大数据技术
19+阅读 · 2017年10月24日
Top
微信扫码咨询专知VIP会员