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实现挑选出来100以内的质数
Mar 24 Python
Python中关于字符串对象的一些基础知识
Apr 08 Python
深入解析Python中的lambda表达式的用法
Aug 28 Python
Python 多线程抓取图片效率对比
Feb 27 Python
Python中 Lambda表达式全面解析
Nov 28 Python
Python之web模板应用
Dec 26 Python
使用python将大量数据导出到Excel中的小技巧分享
Jun 14 Python
python3让print输出不换行的方法
Aug 24 Python
python3中数组逆序输出方法
Dec 01 Python
利用Selenium添加cookie实现自动登录的示例代码(fofa)
May 08 Python
教你如何使用Python Tkinter库制作记事本
Jun 10 Python
Python实现GIF动图以及视频卡通化详解
Dec 06 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数组内存耗用太多问题的解决方法
2010/04/05 PHP
JavaScript的面向对象(一)
2006/11/09 Javascript
如何用js控制css中的float的代码
2007/08/16 Javascript
ie 调试javascript的工具
2009/04/29 Javascript
jquery ready()的几种实现方法小结
2010/06/18 Javascript
基于jquery的文章中所有图片width大小批量设置方法
2013/08/01 Javascript
js onload处理html页面加载之后的事件
2013/10/30 Javascript
js用闭包遍历树状数组的方法
2014/03/19 Javascript
JS跨域问题详解
2014/11/25 Javascript
javascript 判断整数方法分享
2014/12/16 Javascript
jQuery多媒体插件jQuery Media Plugin使用详解
2014/12/19 Javascript
基于RequireJS和JQuery的模块化编程——常见问题全面解析
2016/04/14 Javascript
浅谈String.valueOf()方法的使用
2016/06/06 Javascript
浅析jQuery Ajax通用js封装
2016/06/22 Javascript
使用vue编写一个点击数字计时小游戏
2016/08/31 Javascript
最好用的Bootstrap fileinput.js文件上传组件
2016/12/12 Javascript
JavaScript字符串_动力节点Java学院整理
2017/06/27 Javascript
在Vue中使用echarts的实例代码(3种图)
2017/07/10 Javascript
在vue中封装可复用的组件方法
2018/03/01 Javascript
iview通过Dropdown(下拉菜单)实现的右键菜单
2018/10/26 Javascript
Python实现文件复制删除
2016/04/19 Python
Python 元类实例解析
2018/04/04 Python
python实现基于朴素贝叶斯的垃圾分类算法
2019/07/09 Python
提升python处理速度原理及方法实例
2019/12/25 Python
详解HTML5中的元素与元素
2015/08/17 HTML / CSS
LN-CC中国:高端男装和女装的奢侈时尚目的地
2019/09/14 全球购物
生产部厂长助理职位说明书
2014/03/03 职场文书
纪委书记群众路线整改措施思想汇报
2014/10/09 职场文书
2014年就业工作总结
2014/11/26 职场文书
2014年电话销售工作总结
2014/12/01 职场文书
2014城乡环境综合治理工作总结
2014/12/19 职场文书
写景作文评语集锦
2014/12/25 职场文书
2015年预防青少年违法犯罪工作总结
2015/05/22 职场文书
行为规范主题班会
2015/08/13 职场文书
2016教师学习教育法心得体会
2016/01/19 职场文书
python图像处理基本操作总结(PIL库、Matplotlib及Numpy)
2021/06/08 Python