一、selenium背景介绍
1)静态页面数据
以前爬取数据的网站,大多数都是静态页面。这些数据都是在网页的源代码当中,直接向目标url发起请求,获取响应数据,然后解析数据就可以完成。但是还有一些网站的数据不在网页的源代码当中, 这些数据有可能是通过ajax加载出来的这样的网站中的数据,我们称之为动态网页。
拓展:什么是ajax?可以使网页实现异步更新的技术 ,可以在不重新加载网页的前提下,对网页的部分内容进行更新。前端的技术 (前端的语音 Js)。
2)如果要爬取动态网页的数据呢?
1) 直接分析它真正的数据接口要找到数据对应的url(地址)
优势:代码比较容易编写
劣势:有的时候不太好分析,找到真正的url。
2) 通过selenium来模拟浏览器从而获取想要的数据
优势:不需要分析数据接口,直接通过selenium去获取数据(不论动态还是静态网页,前端页面最终渲染的结果为准,就可以通过selenium爬取)。
劣势:代码量比较大,编写起来比较麻烦,相对于来说慢一些。
3)以上两种方式,那种好用用哪种,灵活运用。
二、selenium概述
1)什么是selenium?
selenium是一个web的自动化测试工具,可以用在所有的主流浏览器上
2)selenium的特点?
1-可以根据指令操作浏览器;
2-selenium只是一个工具,必须和第三方的浏览器相结合使用;
3)selenium的使用方法
第一步 安装
pip install selenium
如果不确定你当前的项目是虚拟环境还是全局环境,你就直接在pycharm中进行安装(终端)
pip install selenium -i https://pypi.douban.com/simple 换源的安装方式
第二步 使用(selenium支持多种浏览器)
from selenium import webdriver
driver = webdriver.Chrome() # 谷歌浏览器
driver = webdriver.Firefox() # 火狐浏览器
driver = webdriver.Edge() # IE 浏览器
driver = webdriver.PhantomJS() # 无可视化界面的浏览器(无头浏览器)
注:以上浏览器需下载配置对应浏览器的驱动。
4) selenium + chrome + chromedriver (chrome浏览器举例)的使用
1)安装一个谷歌浏览器(chrome) 去对应的应用市场下载即可
2) 安装chromedriver http://chromedriver.storage.googleapis.com/index.html
注意:chromedriver需和安装的chrome浏览器的版本保持一致,否则无效。
5)拓展:
面向对象 记住以后编程的方式全部都要使用面向对象
面向对象它是一个编程思想,然后由面向过程延伸出来的。