今天来给大家介绍一下selenium的安装与使用
一、首先介绍一下selenium:python中常用selenium爬取动态渲染网页,selenium是一个自动化测试工具,在python中应用为:
1. selenium可以完全模拟浏览器操作,对动态数据进行获取,动态数据是由代码生成,在页面初始化的过程当中是没有的,也没法获取,但是可以通过selenium来进行获取
2.有些数据是需要进行登录才能获取的,比如说:好友列表,评论,消费记录等。这些数据需要你登录以后才能获取,但是使用selenium后,可以避免人工登录,只需要得到账号密码即可实现selenium代替登录
二、selenium的特点:
1.有程序控制浏览器进行操作,而不是手动操作浏览器
2.程序控制浏览器进行操作的时候速度非常慢,所以要谨慎使用selenium
3.使用selenium控制浏览器的时候,需要下载浏览器对应的驱动程序
4.selenium为开源,免费的,但是更新速度没有浏览器快,不是selenium更新慢而是浏览器更新快,使用的时候要注意selenium和浏览器之间的对应关系
三、selenium安装
安装语句:pip install selenium
四、对应驱动程序的下载
我用的是谷歌和火狐 所以这里只说这两个
首先是谷歌:百度搜索 chromdriver下载 或者复制网址:http://npm.taobao.org/mirrors/chromedriver/
火狐:百度搜索 geckodriver 下载 或者复制网址:https://github.com/mozilla/geckodriver/releases
根据自己的情况选择合适的版本文件下载
下载完成之后将文件放到安装Python环境变量的文件里 我用的是Anaconda
谷歌浏览器和chormdriver的对应关系
chromedriver版本 | 支持的Chrome版本 |
---|---|
v2.40 | v66-68 |
v2.39 | v66-68 |
v2.38 | v65-67 |
v2.37 | v64-66 |
v2.36 | v63-65 |
v2.35 | v62-64 |
v2.34 | v61-63 |
v2.33 | v60-62 |
v2.32 | v59-61 |
v2.31 | v58-60 |
v2.30 | v58-60 |
v2.29 | v56-58 |
v2.28 | v55-57 |
v2.27 | v54-56 |
v2.26 | v53-55 |
v2.25 | v53-55 |
v2.24 | v52-54 |
v2.23 | v51-53 |
v2.22 | v49-52 |
v2.21 | v46-50 |
v2.20 | v43-48 |
v2.19 | v43-47 |
v2.18 | v43-46 |
v2.17 | v42-43 |
v2.13 | v42-45 |
v2.15 | v40-43 |
v2.14 | v39-42 |
v2.13 | v38-41 |
v2.12 | v36-40 |
v2.11 | v36-40 |
v2.10 | v33-36 |
v2.9 | v31-34 |
v2.8 | v30-33 |
v2.7 | v30-33 |
v2.6 | v29-32 |
v2.5 | v29-32 |
v2.4 | v29-32 |
五、selenium 的 webdriver模块的使用
# 引入网页驱动
from selenium import webdriver
# 使用网页驱动来运行火狐浏览器
driver = webdriver.Firefox()
# 通过驱动来执行指定的网页
driver.get('http://www.baidu.com')
#通过id来找
driver.find_element_by_id('kw').send_keys('selenium')
selenium提供了找到元素的方法 find_element_by_XXX
这些方法全部使用Python实现的如果只是相对这个元素进行查找,定位建议使用xpatn或者css__selecotor
如果需对找到的内容进行点击等操作建议使用find_element_by_XXX
在使用selenium的时候会经常碰到下面这个错误:
selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: [id="kw"]
错误原因是 代码执行速度很快但浏览器响应很慢,代码执行到这儿的时候,浏览器里面的元素可能还没有加载完,所以报错,找不到指定的元素
以上就是关于selenium的安装与一些简单的使用。