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 相关文章推荐
wxPython中文教程入门实例
Jun 09 Python
Python中str is not callable问题详解及解决办法
Feb 10 Python
Python实现简单过滤文本段的方法
May 24 Python
对python 数据处理中的LabelEncoder 和 OneHotEncoder详解
Jul 11 Python
python查询文件夹下excel的sheet名代码实例
Apr 02 Python
python实现坦克大战游戏 附详细注释
Mar 27 Python
python如何保证输入键入数字的方法
Aug 23 Python
django中上传图片分页三级联动效果的实现代码
Aug 30 Python
python3 requests库实现多图片爬取教程
Dec 18 Python
Pytorch 神经网络—自定义数据集上实现教程
Jan 07 Python
Python读取yaml文件的详细教程
Jul 21 Python
Ubuntu配置Pytorch on Graph (PoG)环境过程图解
Nov 19 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
咖啡语言
2021/03/03 咖啡文化
PHP批量采集下载美女图片的实现代码
2013/06/03 PHP
linux下实现定时执行php脚本
2015/02/13 PHP
win7系统配置php+Apache+mysql环境的方法
2015/08/21 PHP
thinkPHP+mysql+ajax实现的仿百度一下即时搜索效果详解
2019/07/15 PHP
Laravel定时任务的每秒执行代码
2019/10/22 PHP
初识javascript 文档碎片
2010/07/13 Javascript
js/jQuery对象互转(快速操作dom元素)
2013/02/04 Javascript
js利用数组length属性清空和截短数组的小例子
2014/01/15 Javascript
AngularJS实现在ng-Options加上index的解决方法
2016/11/03 Javascript
Angular2学习笔记——详解路由器模型(Router)
2016/12/02 Javascript
JS中from 表单序列化提交的代码
2017/01/20 Javascript
JS实现的DIV块来回滚动效果示例
2017/02/07 Javascript
js实现动态显示时间效果
2017/03/06 Javascript
基于JavaScript实现焦点图轮播效果
2017/03/27 Javascript
JS判断非空至少输入两个字符的简单实现方法
2017/06/23 Javascript
vue中组件的3种使用方式详解
2019/03/23 Javascript
微信小程序之导航滑块视图容器功能的实现代码(简单两步)
2020/06/19 Javascript
JavaScript实现10秒后再次获取验证码
2020/12/02 Javascript
pandas把dataframe转成Series,改变列中值的类型方法
2018/04/10 Python
人工神经网络算法知识点总结
2019/06/11 Python
python中的decimal类型转换实例详解
2019/06/26 Python
python打印直角三角形与等腰三角形实例代码
2019/10/20 Python
OpenCV哈里斯(Harris)角点检测的实现
2020/01/15 Python
使用Filters滤镜弥补CSS3的跨浏览器问题以及兼容低版本IE
2013/01/23 HTML / CSS
芝加哥牛排公司:Chicago Steak Company
2018/10/31 全球购物
西班牙家用电器和电子产品购物网站:Mi Electro
2019/02/25 全球购物
Kathmandu美国网站:新西兰户外运动品牌
2019/03/23 全球购物
存储过程的优缺点是什么
2015/01/10 面试题
说一下mysql, oracle等常见数据库的分页实现方案
2012/09/29 面试题
土木工程实习生自我鉴定
2013/09/19 职场文书
2016大学自主招生推荐信范文
2015/03/23 职场文书
2015年学习部工作总结范文
2015/03/31 职场文书
小学数学继续教育研修日志
2015/11/13 职场文书
财产分割协议书
2016/03/22 职场文书
Redis5之后版本的高可用集群搭建的实现
2021/04/27 Redis