Python 爬虫:Selenium 安装与测试
2019-09-17 22:34:55 Author: mp.weixin.qq.com(查看原文) 阅读量:58 收藏

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

微信群回复公众号:微信群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

【推荐书籍】


文章来源: https://mp.weixin.qq.com/s/abcZPcauUunVikHEXWWA2g
如有侵权请联系:admin#unsafe.sh