概述
通常我们用的是 Selenium+chromedriver获取动态数据:
- Selenium相当于是一个机器人。可以模拟人类在浏览器上的一些行为,自动处理浏览器上的一些行为,比如点击,填充数据,删除cookie等。
- chromedriver是一个驱动Chrome浏览器的驱动程序,使用他才可以驱动浏览器。当然针对不同的浏览器有不同的driver。以下列出了不同浏览器及其对应的driver:
- Chrome:https://sites.google.com/a/chromium.org/chromedriver/downloads
- Firefox:https://github.com/mozilla/geckodriver/releases
- Edge:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
- Safari:https://webkit.org/blog/6900/webdriver-support-in-safari-10/
安装Selenium和chromedriver
1、 安装Selenium:
Selenium有很多语言的版本,有java、ruby、python等。我们下载python版本的就可以了。
pip install selenium
2、 安装chromedriver:
chromedriver下载地址:
Chrome:https://sites.google.com/a/chromium.org/chromedriver/downloads
不好意思 ,被墙掉了。 能翻墙的同学,直接点击上面的路径去下载即可
不能翻墙的同学,下载淘宝网提供的镜像
http://npm.taobao.org/mirrors/chromedriver/
下载ChromeDrive要注意对应版本
注意:即使版本不对,但是以下流程能跑通。但是后期开发中,比如通过 ChromeDriver去获取网页中元素时,会报如下错误,
message: unknown error: call function result missing value
所以一定要下载对应版本ChromeDriver
ChromeDriver 版本 ------------- 支持的 Chrome 版本
ChromeDriver v2.41 (2018-07-27) --------- Supports Chrome v67-69
ChromeDriver v2.40 (2018-06-07) ---------Supports Chrome v66-68
ChromeDriver v2.39 (2018-05-30) ---------Supports Chrome v66-68
ChromeDriver v2.38 (2018-04-17)--------- Supports Chrome v65-67
ChromeDriver v2.37 (2018-03-16) ---------Supports Chrome v64-66
ChromeDriver v2.36 (2018-03-02) ---------Supports Chrome v65-67
ChromeDriver v2.35 (2018-01-10) ---------Supports Chrome v62-64
下载完成后:
windows 下,放到不需要权限的纯英文目录下就可以了 新建一个命名为chromedriver文件夹,将解压的chromedriver.exe放进文件夹,
Linux下,把下载好的文件放在 /usr/bin 目录下就可以了。
测试是否安装成功
打开百度网页
from selenium import webdriver
# 前面加r表示原生字符串
driver_path = r"D:\programApp\chromedriver\chromedriver.exe"
# 获取 Chrome 浏览器操作驱动
driver = webdriver.Chrome(executable_path=driver_path)
# 利用驱动打开百度网址
driver.get('https://www.baidu.com')
# 在控制输出百度网页html
print(driver.page_source)
运行上面的代码,谷歌浏览器自动打开,并打开百度网页:
如上图,弹出谷歌浏览器窗口中显示 Chrome正受到自动测试软件的控制。表示一切安装完成。