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中使用中文的方法
Feb 19 Python
使用 Python 实现微信公众号粉丝迁移流程
Jan 03 Python
pandas groupby 分组取每组的前几行记录方法
Apr 20 Python
Python requests发送post请求的一些疑点
May 20 Python
使用pandas批量处理矢量化字符串的实例讲解
Jul 10 Python
使用Python编写Prometheus监控的方法
Oct 15 Python
对python 读取线的shp文件实例详解
Dec 22 Python
Python实现统计英文文章词频的方法分析
Jan 28 Python
python3通过selenium爬虫获取到dj商品的实例代码
Apr 25 Python
wxpython绘制圆角窗体
Nov 18 Python
Python numpy多维数组实现原理详解
Mar 10 Python
基于tensorflow权重文件的解读
May 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
浅析使用Turck-mmcache编译来加速、优化PHP代码
2013/06/20 PHP
php实现用于验证所有类型的信用卡类
2015/03/24 PHP
Laravel 5框架学习之模型、控制器、视图基础流程
2015/04/08 PHP
PHP合并数组的2种方法小结
2016/11/24 PHP
可以文本显示的公告栏的js代码
2007/03/11 Javascript
JavaScript Konami Code 实现代码
2009/07/29 Javascript
javascript教程:关于if简写语句优化的方法
2014/05/17 Javascript
JS给超链接加确认对话框的方法
2015/02/24 Javascript
JS+CSS实现表格高亮的方法
2015/08/05 Javascript
jQuery EasyUI之DataGrid使用实例详解
2016/01/04 Javascript
js 颜色选择插件
2017/01/23 Javascript
Angular 表单控件示例代码
2017/06/26 Javascript
JavaScript中错误正确处理方式小结你用对了吗
2017/10/10 Javascript
vue.js中$set与数组更新方法
2018/03/08 Javascript
setTimeout时间设置为0详细解析
2018/03/13 Javascript
微信小程序实现登录遮罩效果
2018/11/01 Javascript
[10:14]2018DOTA2国际邀请赛寻真——paiN Gaming不仅为自己而战
2018/08/14 DOTA
[37:03]完美世界DOTA2联赛PWL S3 INK ICE vs GXR 第二场 12.16
2020/12/18 DOTA
python的描述符(descriptor)、装饰器(property)造成的一个无限递归问题分享
2014/07/09 Python
Python每天必学之bytes字节
2016/01/28 Python
python实现人脸识别代码
2017/11/08 Python
python机器学习之神经网络实现
2018/10/13 Python
Python使用sklearn实现的各种回归算法示例
2019/07/04 Python
Python实现的统计文章单词次数功能示例
2019/07/08 Python
python检查目录文件权限并修改目录文件权限的操作
2020/03/11 Python
python模拟点击玩游戏的实例讲解
2020/11/26 Python
珍爱生命演讲稿
2014/05/10 职场文书
幸福家庭标语
2014/06/27 职场文书
2014年国庆标语
2014/06/30 职场文书
“四风”问题的主要表现和危害思想汇报
2014/09/19 职场文书
家长给老师的感谢信
2015/01/20 职场文书
2015年银行个人工作总结
2015/05/14 职场文书
学习新党章心得体会2016
2016/01/15 职场文书
创业计划书之电动车企业
2019/10/11 职场文书
600字作文之感受大自然
2019/11/27 职场文书
Python pyecharts绘制条形图详解
2022/04/02 Python