selenium: 是一个用于对web网页进行自动化测试的工具, 可以通过它提供的一些方法自动操作浏览器, 可以完全模拟人的操作
selenium在Python爬虫中的应用:
1> 获取动态网页中的数据, 一些动态的数据我们在获取的源码中并没有显示的这一类动态加载数据
2> 用于模拟登录, 一些比较复杂的登录过程, 如果不通过selenium中的浏览器驱动完成登录的话, 我们需要分析出来这个登录发起的所有请求之间关联,包括cookie等关键信息(比如知乎登录), 而通过selenium驱动浏览器来完成知乎登录的话, 就不需要考虑一些cookie, 请求和请求之间的关联等信息, 只需要用户名和密码即可登录
selenium的特点
1. 它是通过驱动浏览器来进行页面登录, 或者是获取页面信息
2. 通过selenium来爬取网址的时候, 效率比较低, 因为浏览器的打开, 请求, 渲染页面都需要一定的时间, 所以尽量少使用selenium进行网站爬取, 除非是动态网站
3. selenium提供的一些用于元素定位和查找的API都是纯Python语言实现的, 所以效率上看, 没有lxml中的定位API效率高
# API :(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
4. selenium是开源免费的, 支持主流的浏览器, IE, FireFox, Chrome, Opera, Safari等
使用方法:
1. 安装selenium: pip install selenium (第三方库)
2. 安装浏览器驱动, 用于启动浏览器: firefox driver, chrome driver(百度搜索下载)
注意: 浏览器驱动的版本最好要和浏览器的版本相匹配, 否则会出现不能启动浏览器的错误!
安装完成后:
1>引入这个库
from selenium import webdriver
2>创建一个火狐浏览器对象
browser = webdriver.Firefox()
3>通过浏览器对象browser向某一个url发起请求
browser.get(url)
4>关闭浏览器
browser.quite()
这样就能使用selenium进行简单的操作了
(详细使用方法请看其它内容)