selenium中get_cookies()和add_cookie()的用法详解


Posted in Python onJanuary 06, 2020

在用selenium爬取网页的时候,有时候需要登陆,这时候用selenium获取cookie和携带cookie是很方便的,获取cookie可以通过内置的函数get_cookies(),它得到的是一组cookie,是由cookie组成的列表。单个的cookie是字典组成的,所有get_cookies()返回值是由字典组成的列表。

dictCookies = browser.get_cookies()
jsonCookies = json.dumps(dictCookies)
# print(jsonCookies)
with open('anquan.txt', 'w') as f:
  f.write(jsonCookies)

注意:这个jsonCookies是一个列表,是一个完整的cookie。

{'name': 'QCARJSESSIONID', 'value': 'BBmPcsfClCknfQX1cN2MLMgKXZGtFWqsBvjN9mbM9tmbL38hMmw4!1426878101', 'path': '/', 'domain': 'qcar.apiins.com', 'secure': False, 'httpOnly': True}
{'name': 'BIGipServercar_qcar_poool', 'value': '1191316140.16671.0000', 'path': '/', 'domain': 'qcar.apiins.com', 'secure': False, 'httpOnly': False}
{'name': 'chinainsuranceJSESSIONID', 'value': 'rkgncsfG8pnrhh8x1CvNy46zHplyLkTjyv1LL2hk4wDrkD9Mjz9Y!2078734058', 'path': '/', 'domain': 'qcar.apiins.com', 'secure': False, 'httpOnly': True}
{'name': 'BIGipServercar_core_pool', 'value': '1191316140.17951.0000', 'path': '/', 'domain': 'qcar.apiins.com', 'secure': False, 'httpOnly': False}

这样就获取到了cookie,那么如何使用呢,我们让浏览器对象携带cookies就行了,这时候用另外一个函数add_cookie()

with open('anquan.txt', 'r', encoding='utf8') as f:
   listCookies = json.loads(f.read())
 print('%%%%%%%%%%%%%%%%%', listCookies)
 for cookie in listCookies:
   obj.add_cookie(cookie)
 obj.get('https://qcar.apiins.com/qcar')
 # 读取完cookie刷新页面
 obj.refresh()

这样,我们就可以携带cookie,实现免登陆。有人说,你直接登陆不就完事了吗?有些应用场景还是用的到的,比如说验证码识别率不高,比如监视爬虫,定时爬虫,要求五分钟爬一次,两分钟爬一次,每次登陆会很麻烦。这个时候我们可以分开,一个专门登陆抓取cookie,30分钟更新一次cookie文件。另外一个读取cookie文件就ok了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在Python中处理时间之clock()方法的使用
May 22 Python
实例解析Python的Twisted框架中Deferred对象的用法
May 25 Python
Python3实现购物车功能
Apr 18 Python
Caffe均值文件mean.binaryproto转mean.npy的方法
Jul 09 Python
python opencv实现切变换 不裁减图片
Jul 26 Python
TensorFlow tf.nn.conv2d实现卷积的方式
Jan 03 Python
python将unicode和str互相转化的实现
May 11 Python
详解python logging日志传输
Jul 01 Python
Python大批量搜索引擎图像爬虫工具详解
Nov 16 Python
如何用Python进行时间序列分解和预测
Mar 01 Python
Python django中如何使用restful框架
Jun 23 Python
Python内置类型集合set和frozenset的使用详解
Apr 26 Python
pytorch中的自定义反向传播,求导实例
Jan 06 #Python
PyTorch中 tensor.detach() 和 tensor.data 的区别详解
Jan 06 #Python
6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)
Jan 06 #Python
基于python+selenium的二次封装的实现
Jan 06 #Python
Python使用Tkinter实现滚动抽奖器效果
Jan 06 #Python
Python使用Tkinter实现转盘抽奖器的步骤详解
Jan 06 #Python
pytorch 实现在预训练模型的 input上增减通道
Jan 06 #Python
You might like
深入了解PHP类Class的概念
2012/06/14 PHP
php除数取整示例
2014/04/24 PHP
JS的replace方法详细介绍
2012/11/09 Javascript
使用PHP+JQuery+Ajax分页的实现
2013/04/23 Javascript
JS清除IE浏览器缓存的方法
2013/07/26 Javascript
js实现拉伸拖动iframe的具体代码
2013/08/03 Javascript
浅析return false的正确使用
2013/11/04 Javascript
JS去掉第一个字符和最后一个字符的实现代码
2014/02/20 Javascript
jQuery实现的进度条效果
2015/07/15 Javascript
一步步教大家编写酷炫的导航栏js+css实现
2016/03/14 Javascript
javascript实现标签切换代码示例
2016/05/22 Javascript
全面解析jQuery $(document).ready()和JavaScript onload事件
2016/06/08 Javascript
axios+Vue实现上传文件显示进度功能
2019/04/14 Javascript
js中console在一行内打印字符串和对象的方法
2019/09/10 Javascript
小程序登录之支付宝授权的实现示例
2019/12/13 Javascript
利用js实现简易红绿灯
2020/10/15 Javascript
在Django中创建URLconf相关的通用视图的方法
2015/07/20 Python
Python算法之求n个节点不同二叉树个数
2017/10/27 Python
python ipset管理 增删白名单的方法
2019/01/14 Python
对python3 Serial 串口助手的接收读取数据方法详解
2019/06/12 Python
Python Django中间件使用原理及流程分析
2020/06/13 Python
pytorch  网络参数 weight bias 初始化详解
2020/06/24 Python
LA MER海蓝之谜美国官网:传奇面霜
2016/08/27 全球购物
意大利灯具购物网站:Lampade.it
2018/10/18 全球购物
店长岗位职责
2013/11/21 职场文书
年会活动策划方案
2014/01/23 职场文书
工作室成员个人发展规划范文
2014/01/24 职场文书
音乐教学案例
2014/01/30 职场文书
劳动工资科岗位职责范本
2014/03/02 职场文书
社区道德讲堂实施方案
2014/03/21 职场文书
公司应聘自荐书
2014/06/14 职场文书
学生逃课万能检讨书2000字
2015/02/17 职场文书
导游词之襄阳古城
2019/09/27 职场文书
go语言map与string的相互转换的实现
2021/04/07 Golang
Java比较两个对象中全部属性值是否相等的方法
2021/08/07 Java/Android
MyBatis自定义SQL拦截器示例详解
2021/10/24 Java/Android