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聊天室程序(基础版)
Apr 01 Python
Python迭代器定义与简单用法分析
Apr 30 Python
Python中应该使用%还是format来格式化字符串
Sep 25 Python
Django model反向关联名称的方法
Dec 15 Python
Python图像处理实现两幅图像合成一幅图像的方法【测试可用】
Jan 04 Python
python程序运行进程、使用时间、剩余时间显示功能的实现代码
Jul 11 Python
在Django下测试与调试REST API的方法详解
Aug 29 Python
Python转换itertools.chain对象为数组的方法
Feb 07 Python
Selenium启动Chrome时配置选项详解
Mar 18 Python
使用keras实现Precise, Recall, F1-socre方式
Jun 15 Python
numpy中生成随机数的几种常用函数(小结)
Aug 18 Python
python单元测试框架pytest的使用示例
Oct 07 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
Extended CHM PHP 语法手册之 DIY
2006/10/09 PHP
php求数组全排列,元素所有组合的方法总结
2017/03/14 PHP
PHP如何实现阿里云短信sdk灵活应用在项目中的方法
2019/06/14 PHP
window.open()弹出居中的窗口
2007/02/01 Javascript
[原创]来自ImageSee官方 JavaScript图片浏览器
2008/01/16 Javascript
推荐40个简单的 jQuery 导航插件和教程(下篇)
2012/09/14 Javascript
jQuery实现鼠标经过图片预览大图效果
2014/04/10 Javascript
js子页面获取父页面数据示例
2014/05/15 Javascript
JavaScript继承模式粗探
2016/01/12 Javascript
js和jq使用submit方法无法提交表单的快速解决方法
2016/05/17 Javascript
js中遍历对象的属性和值的方法
2016/07/27 Javascript
jQuery实现输入框邮箱内容自动补全与上下翻动显示效果【附demo源码下载】
2016/09/20 Javascript
简单的js表格操作
2016/09/24 Javascript
JS实现旋转木马式图片轮播效果
2017/01/18 Javascript
详解本地Node.js服务器作为api服务器的解决办法
2017/02/28 Javascript
原生js实现简单的Ripple按钮实例代码
2017/03/24 Javascript
分享vue里swiper的一些坑
2018/08/30 Javascript
Angular6项目打包优化的实现方法
2019/12/15 Javascript
js实现随机圆与矩形功能
2020/10/29 Javascript
Python实现变量数值交换及判断数组是否含有某个元素的方法
2017/09/18 Python
python list删除元素时要注意的坑点分享
2018/04/18 Python
Python hashlib模块用法实例分析
2018/06/12 Python
用Python调用win命令行提高工作效率的实例
2019/08/14 Python
Python谱减法语音降噪实例
2019/12/18 Python
Python多进程编程multiprocessing代码实例
2020/03/12 Python
详解基于Jupyter notebooks采用sklearn库实现多元回归方程编程
2020/03/25 Python
味多美官网:蛋糕订购,100%使用天然奶油
2017/11/10 全球购物
德国亚洲食品网上商店:asiafoodland.de
2019/12/28 全球购物
工程力学专业毕业生求职信
2013/10/06 职场文书
销售主管岗位职责
2014/02/08 职场文书
爱情寄语大全
2014/04/09 职场文书
就业协议书的作用
2014/04/11 职场文书
2015年党务公开工作总结
2015/05/19 职场文书
新兵入伍决心书
2015/09/22 职场文书
python爬虫之利用selenium模块自动登录CSDN
2021/04/22 Python
Vue和Flask通信的实现
2021/05/19 Vue.js