Python爬虫基础初探selenium


Posted in Python onMay 31, 2021

Python爬虫、数据分析、网站开发等案例教程视频免费在线观看

https://space.bilibili.com/523606542

Selenium

Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,就像玩游戏用的按键精灵,可以按指定的命令自动操作。

Selenium测试工具直接操控浏览器中,就像真正的用户在操作一样。Selenium可以根据的指令,让浏览器自动加载页面,获取需要的数据,甚至页面截屏,或者判断网站上某些动作是否发生等。

selenium的用途

  (1)、selenium可以驱动浏览器自动执行自定义好的逻辑代码,也就是可以通过代码完全模拟成人类使用浏览器自动访问目标站点并操作,那我们也可以拿它来做爬虫。

  (2)、selenium本质上是通过驱动浏览器,完全模拟浏览器的操作,比如跳转、输入、点击、下拉等...进而拿到网页渲染之后的结果,可支持多种浏览器

selenium是优缺点

  (1)优点
    优点就是可以帮我们避开一系列复杂的通信流程,例如在我们之前学习的requests模块,那么requests模块在模拟请求的时候是不是需要把素有的通信流程都分析完成后才能通过请求,然后返回响应。假如目标站点有一系列复杂的通信流程,例如的登录时的滑动验证等...那么你使用requests模块的时候是不是就特别麻烦了。不过你也不需要担心,因为网站的反爬策略越高,那么用户的体验效果就越差,所以网站都需要在用户的淫威之下降低安全策略。
    再看一点requests请求库能不能执行js?是不是不能呀!那么如果你的网站需要发送ajax请求,异步获取数据渲染到页面上,是不是就需要使用js发送请求了。那浏览器的特点是什么?是不是可以直接访问目标站点,然后获取对方的数据,从而渲染到页面上。那这些就是使用selenium的好处!
  (2)缺点
    使用selenium本质上是驱动浏览器对目标站点发送请求,那浏览器在访问目标站点的时候,是不是都需要把静态资源都加载完毕。html、css、js这些文件是不是都要等待它加载完成。是不是速度特别慢。那用它的坏处就是效率极低!所以我们一般用它来做登录验证。

1. Selenium工作原理

Python爬虫基础初探selenium


 

如图所示,通过Python来控制Selenium,然后让Selenium 控制浏览器,操纵浏览器,这样就实现了使用Python间接的操控浏览器。

1.1 Selenium配置

Selenium支持多种浏览器,最常见的就是火狐和谷歌浏览器。首先在电脑上下载浏览器,浏览器版本不宜过新。

火狐:截图如下

Python爬虫基础初探selenium

谷歌:截图如下

Python爬虫基础初探selenium

1.2 浏览器驱动

Selenium具体怎么就能操纵浏览器呢?这要归功于浏览器驱动,Selenium可以通过API接口实现和浏览器驱动的交互,进而实现和浏览器的交互。所以要配置浏览器驱动。

火狐驱动下载地址:
http://npm.taobao.org/mirrors/geckodriver/
谷歌驱动下载地址:
https://npm.taobao.org/mirrors/chromedriver/

配置浏览器驱动:

将下载好的浏览器驱动解压,将解压出的exe文件放到Python的安装目录下,也就是和python.exe同目录即可。

Python爬虫基础初探selenium

1.3 使用Selenium

安装selenium模块,python借助这个模块驱动浏览器,使用如下命令行安装这个模块即可

pip install selenium

2 快速入门

# 打开百度首页
 
from selenium import webdriver
 
driver = webdriver.chrome()
url = 'https : / /www.baidu . com/ '
driver.get(url)
#打开get就类似与在浏览器地址栏里面放入网址
driver.get(url)
#退出浏览器
driver.quit()

以上就是Python爬虫基础初探selenium的详细内容,更多关于Python爬虫基础selenium的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Django1.7+python 2.78+pycharm配置mysql数据库教程
Nov 18 Python
给Python中的MySQLdb模块添加超时功能的教程
May 05 Python
Python中利用sqrt()方法进行平方根计算的教程
May 15 Python
Python的Django框架下管理站点的基本方法
Jul 17 Python
Android模拟器无法启动,报错:Cannot set up guest memory ‘android_arm’ Invalid argument的解决方法
Jul 01 Python
一篇文章搞懂Python的类与对象名称空间
Dec 10 Python
使用Python进行中文繁简转换的实现代码
Oct 18 Python
Python有参函数使用代码实例
Jan 06 Python
python爬虫实现获取下一页代码
Mar 13 Python
windows、linux下打包Python3程序详细方法
Mar 17 Python
keras的load_model实现加载含有参数的自定义模型
Jun 22 Python
如何将anaconda安装配置的mmdetection环境离线拷贝到另一台电脑
Oct 15 Python
只用40行Python代码就能写出pdf转word小工具
pytorch 如何把图像数据集进行划分成train,test和val
May 31 #Python
Python图片检索之以图搜图
写一个Python脚本下载哔哩哔哩舞蹈区的所有视频
python中的plt.cm.Paired用法说明
May 31 #Python
在pycharm中无法import所安装的库解决方案
如何在pycharm中快捷安装pip命令(如pygame)
You might like
php 文件夹删除、php清除缓存程序
2009/08/25 PHP
PHP 常用时间函数资料整理
2016/10/22 PHP
PHP中函数gzuncompress无法使用的解决方法
2017/03/02 PHP
php使用curl模拟多线程实现批处理功能示例
2019/07/25 PHP
图片按比例缩放函数
2006/06/26 Javascript
新浪中用来显示flash的函数
2007/04/02 Javascript
jQuery 动态酷效果实现总结
2009/12/27 Javascript
ParseInt函数参数设置介绍
2014/01/02 Javascript
js 实现数值的千分位及保存小数方法(推荐)
2016/08/01 Javascript
使用JavaScript获取Request中参数的值方法
2016/09/27 Javascript
AngularJS 中使用Swiper制作滚动图不能滑动的解决方法
2016/11/15 Javascript
js实现手机拍照上传功能
2017/01/17 Javascript
JS判断数组那点事
2017/10/10 Javascript
Vue 按键修饰符处理事件的方法
2018/05/04 Javascript
教你如何用Node实现API的转发(某音乐)
2019/09/20 Javascript
[01:20:06]TNC vs VG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Django中使用Celery的方法示例
2018/11/29 Python
深入解析Python小白学习【操作列表】
2019/03/23 Python
关于python多重赋值的小问题
2019/04/17 Python
利用Python检测URL状态
2019/07/31 Python
Python Handler处理器和自定义Opener原理详解
2020/03/05 Python
python使用Thread的setDaemon启动后台线程教程
2020/04/25 Python
Python获取浏览器窗口句柄过程解析
2020/07/25 Python
Python3爬虫里关于识别微博宫格验证码的知识点详解
2020/07/30 Python
基于python的opencv图像处理实现对斑马线的检测示例
2020/11/29 Python
python里glob模块知识点总结
2021/01/05 Python
HTML5 对各个标签的定义与规定:body的介绍
2012/06/21 HTML / CSS
运动鞋中的劳斯莱斯:索康尼(SAUCONY)
2017/08/09 全球购物
Marlies Dekkers内衣荷兰官方网店:荷兰奢侈内衣品牌
2020/03/27 全球购物
Exception类的常用方法
2012/06/16 面试题
产品销售员岗位职责
2013/12/18 职场文书
人力资源管理专业自荐书
2014/07/07 职场文书
2015年公司新年寄语
2014/12/08 职场文书
交通事故责任认定书
2015/08/06 职场文书
python实现图片九宫格分割的示例
2021/04/25 Python
springboot layui hutool Excel导入的实现
2022/03/31 Java/Android