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列表推导式的使用方法
Nov 21 Python
详解Python的单元测试
Apr 28 Python
itchat接口使用示例
Oct 23 Python
彻底搞懂Python字符编码
Jan 23 Python
对python pandas读取剪贴板内容的方法详解
Jan 24 Python
python 在指定范围内随机生成不重复的n个数实例
Jan 28 Python
Python的bit_length函数来二进制的位数方法
Aug 27 Python
python实现文件批量编码转换及注意事项
Oct 14 Python
Django框架模板用法入门教程
Nov 04 Python
django xadmin中form_layout添加字段显示方式
Mar 30 Python
Python-openpyxl表格读取写入的案例详解
Nov 02 Python
python3 删除所有自定义变量的操作
Apr 08 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
《魔兽争霸3:重制版》翻车了?你想要的我们都没有
2019/11/07 魔兽争霸
PHP MySQL应用中使用XOR运算加密算法分享
2011/08/28 PHP
php发送html格式文本邮件的方法
2015/06/10 PHP
PHP如何实现Unicode和Utf-8编码相互转换
2015/07/29 PHP
使用PHP进行微信公众平台开发的示例
2015/08/21 PHP
php官方微信接口大全(微信支付、微信红包、微信摇一摇、微信小店)
2015/12/21 PHP
PHP的微信支付接口使用方法讲解
2019/03/08 PHP
laravel实现按时间日期进行分组统计方法示例
2019/03/23 PHP
HTML页面,测试JS对C函数的调用简单实例
2016/08/09 Javascript
Bootstrap布局之栅格系统学习笔记
2017/05/04 Javascript
Angular异步变同步处理方法
2018/08/13 Javascript
NodeJs操作MongoDB教程之分页功能以及常见问题
2019/04/09 NodeJs
angular 实现同步验证器跨字段验证的方法
2019/04/11 Javascript
vue实现弹幕功能
2019/10/25 Javascript
JS箭头函数和常规函数之间的区别实例分析【 5 个区别】
2020/05/27 Javascript
vue实现登录拦截
2020/06/29 Javascript
jQuery实现日历效果
2020/09/11 jQuery
Python中方法链的使用方法
2016/02/23 Python
Python使用matplotlib实现绘制自定义图形功能示例
2018/01/18 Python
TensorFlow实现Softmax回归模型
2018/03/09 Python
Python实现针对给定单链表删除指定节点的方法
2018/04/12 Python
windows下pycharm安装、创建文件、配置默认模板
2018/07/31 Python
Python线程指南分享
2019/11/19 Python
计算pytorch标准化(Normalize)所需要数据集的均值和方差实例
2020/01/15 Python
python实现输入三角形边长自动作图求面积案例
2020/04/12 Python
matplotlib图例legend语法及设置的方法
2020/07/28 Python
最简单的matplotlib安装教程(小白)
2020/07/28 Python
美国汽配连锁巨头Pep Boys官网:轮胎更换、汽车维修服务和汽车零部件
2017/01/14 全球购物
数据库什么时候应该被重组
2012/11/02 面试题
上海天奕面试题笔试题
2015/04/19 面试题
致跳远运动员加油稿
2014/02/11 职场文书
《称象》教学反思
2014/04/25 职场文书
中华魂放飞梦想演讲稿
2014/08/26 职场文书
大学生求职简历自我评价
2015/03/02 职场文书
Java实现学生管理系统(IO版)
2022/02/24 Java/Android
如何Python使用re模块实现okenizer
2022/04/30 Python