Selenium是一个用于测试Web应用程序的自动化测试工具,它直接运行在浏览器中,实现了对浏览器的自动化操作,它支持所有主流的浏览器,包括IE,Firefox,Safari,Chrome等。
Selenium支持所有主流平台(如,Windows、Linux、IOS、Android、Edge、Opera等),同时,它也实现了诸多自动化功能,比如软件自动化测试,检测软件与浏览器兼容性,自动录制、生成不同语言的测试脚本,以及自动化爬虫等。本节及后续两节主要围绕自动化爬虫展开讲解。
Selenium提供了一个工具集,包括SeleniumWebDriver(浏览器驱动)、SeleniumIDE(录制测试脚本)、SeleniumGrid(执行测试脚本)。后面两个主要用于测试脚本的录制、执行,因此不做介绍。我们只对SeleniumWebDriver做重点讲解。
关于SeleniumIDE/Grid的相关知识可参考官网文档https://www.selenium.dev/。
Selenium下载安装
Selenium安装非常简单,Linux、Mac用户执行以下命令即可:
sudo pip install Selenium1复制代码类型:[python]
Windows用户执行以下命令即可实现安装:
python -m pip install selenium1复制代码类型:[python]
除了使用上述命令安装外,您也可以通过官方网站下载SeleniumWebDriver安装包。
安装浏览器驱动
若想使Selenium能够调用浏览器,那么必须通过webdriver驱动来实现。不同的浏览器需要使用不同驱动程序,下面列出了不同浏览器驱动程序的下载地址:
谷歌浏览器chromedrive:http://chromedriver.storage.googleapis.com/index.html
火狐浏览器geckodriver:https://github.com/mozilla/geckodriver/releases
IE浏览器IEDriver:http://selenium-release.storage.googleapis.com/index.html
各种浏览器的驱动安装规程基本一致。不过需要注意:安装Chrome、Firefox驱动时,需要下载与浏览器版本相匹配的驱动程序,否则不能驱动浏览器。而IE较为特殊,您需要下载与Selenium版本相匹配的驱动文件,如下所示:
下面以Windows10平台Chrome浏览器为例讲解。首先检查浏览器版本号,并下载相应驱动文件,然后解压文件,将Chromedriver.exe文件拷贝到Python安装目录的Scripts目录下,最后将其添加到系统环境变量中。使用如下命令可查看Python安装路径:
where python1复制代码类型:[python]
您需要根据自己安装路径进行配置,我的环境变量配置如下:
上述操作完成后,在CMD命令行启动驱动程序,如下所示:
开启成功后,驱动程序会在后台运行。
自动访问百度
编写如下代码,实现自动化访问百度。
# 导入seleinum webdriver接口 from selenium import webdriver import time # 创建Chrome浏览器对象 browser = webdriver.Chrome() #访问百度网站 browser.get('http://www.baidu.com/') #阻塞3秒 time.sleep(3) # 自动退出浏览器 browser.quit()1234567891011复制代码类型:[python]
截取了运行中的显示结果,如下所示:
经过上述代测试,说明我们安装的浏览器驱动可以正常工作。SeleniumWebDriver实现了许多操作浏览器功能。比如实现自动点击、自动输入、自动搜索、自动登录等等。
毫不夸张的说,Selenium自动化爬虫是一种万能的爬虫程序,它可以仿照人的样子去打开网站,并拿到你想要的数据,因此你无须在意反爬措施。不过它最致命的缺点就是效率很低,因为每次点击、输入等操作都需要花费一定的时间,因此它仅适用于小批量的数据抓取。