基于Python +Selenium的爬虫详解
转自:python专栏
一、selenium简介
由于requests模块是一个不完全模拟浏览器行为的模块,只能爬取到网页的HTML文档信息,无法解析和执行CSS、JavaScript代码,因此需要我们做人为判断;
1、什么是selenium
selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法执行javaScript代码的问题。
selenium模块本质是通过驱动浏览器,完全模拟浏览器的操作,比如跳转、输入、点击、下拉等,来拿到网页渲染之后的结果,可支持多种浏览器;由于selenium解析执行了CSS、JavaScript所以相对requests它的性能是低下的;
2、selenium的用途
1)selenium可以驱动浏览器自动执行自定义好的逻辑代码,也就是可以通过代码完全模拟成人类使用浏览器自动访问目标站点并操作,那我们也可以拿它来做爬虫。
2)selenium本质上是通过驱动浏览器,完全模拟浏览器的操作,比如跳转、输入、点击、下拉等…进而拿到网页渲染之后的结果,可支持多种浏览器
二、selenium的安装与测试
1、下载selenium模块:
pip3 install -i http://pypi.tuna.tsinghua.edu.cn/simple selenium
或者在pycharm中下载
2、安装浏览器驱动
- Google浏览器驱动(在下载驱动之前,查看一下chrome浏览器的版本号,如下:
国内镜像网站地址:http://npm.taobao.org/mirrors/chromedrive
当然也可以去官网找最新的版本,官网: http://sites.google.com/a/chromium.org/chromedriver/downloads
另外注意:把下载好的chromedriver.exe放到python安装路径的scripts目录中即可
- firefox浏览器驱动:
selenium3默认支持的webdriver是Firfox,而Firefox需要安装geckodriver
下载链接:http://github.com/mozilla/geckodriver/releases
- 测试是否安装成功
import timefrom selenium import webdriver
browser=webdriver.Chrome()
#实例化1个谷歌浏览器对象browser.get('http://www.baidu.com/')` `time.sleep(5)
browser.close()
[**专属福利**](http://mp.weixin.qq.com/s?__biz=Mzg2NDY1NzMzNw==&mid=2247500575&idx=1&sn=94668c0a2b8b37a0ed1111f847d3396d&chksm=ce6489c9f91300dfbb5a77053993dc33e52d6be2edcd9213634042e2d7f700b02721fdb1da5c&token=1788255009&lang=zh_CN&scene=21#wechat_redirect)
[**👉点击领取:最全Python资料合集**](http://mp.weixin.qq.com/s?__biz=Mzg2NDY1NzMzNw==&mid=2247500575&idx=1&sn=94668c0a2b8b37a0ed1111f847d3396d&chksm=ce6489c9f91300dfbb5a77053993dc33e52d6be2edcd9213634042e2d7f700b02721fdb1da5c&token=1788255009&lang=zh_CN&scene=21#wechat_redirect)
三、selenium的使用
所谓模拟浏览器基本就是下面的流程:
1.请求