以前搞Java的时候,知道Selenium是做自动化测试的,后来发现搞爬虫也会用到Selenium,这里就和Python整合方面,简单学习下。
1. 什么是Selenium
Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。–百度百科
官网地址:http://www.seleniumhq.org/
因为Selenium可以录制不同的动作,模拟操作,和Python结合以后,在爬取数据的时候就很方便,所以下面我们来看看需要怎样配置。
#2. 安装配置
2.1火狐浏览器插件安装
插件地址:https://addons.mozilla.org/en-US/firefox/addon/selenium-ide/
安装之后,我们可以直接在浏览器中使用Selenium
2.2火狐浏览器driver下载
这个再后面会用到,地址:https://github.com/mozilla/geckodriver/releases
WebDriver是Selenium的API,我们用Python集成开发会很方便,这个下载后,需要放到Path路径下
2.3Python安装Selenium模块
|
|
3.示例代码
我们先来看一个简单的例子,我们打开火狐浏览器,然后让浏览器加载一个URL
刚开始可能会报错,这是因为我们上面的那个driver没有加到PATH。
加到PATH后,再次执行,就可打开浏览器了
再来看一个略复杂的例子:
这是官方中的例子:http://www.seleniumhq.org/docs/03_webdriver.jsp#selenium-webdriver
执行后,我们会看到,打开浏览器,然后搜索‘Python’,返回搜索结果后会关闭。
4.获取控件的方式
在上面的例子中,我们使用了find_element_by_id,就是通过标签的id来获取元素
这个和JS里面的差不多,还有很多其他的方法
论坛里这篇博客写的很好:Python3中Selenium使用方法
5. 实例练习
这里顺便写个小例子,练习下,我们方位豆瓣读书,然后搜索关键字,将所有的书都打印出来
这里的元素获取方式,不是最佳的,代码还得继续优化,这个下一页挺好玩儿的,
刚刚简单优化了下代码,主要改了些元素选择的方式,更直接了: