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实现文本文件合并
Dec 29 Python
浅谈Python类的__getitem__和__setitem__特殊方法
Dec 25 Python
分享给Python新手们的几道简单练习题
Sep 21 Python
python开发之anaconda以及win7下安装gensim的方法
Jul 05 Python
手机使用python操作图片文件(pydroid3)过程详解
Sep 25 Python
python图形开发GUI库wxpython使用方法详解
Feb 14 Python
python GUI库图形界面开发之PyQt5简单绘图板实例与代码分析
Mar 08 Python
Python爬虫实现百度翻译功能过程详解
May 29 Python
Python基于pandas绘制散点图矩阵代码实例
Jun 04 Python
Python字符串及文本模式方法详解
Sep 10 Python
python调用摄像头的示例代码
Sep 28 Python
python使用smtplib模块发送邮件
Dec 17 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
Dedecms V3.1 生成HTML速度的优化办法
2007/03/18 PHP
CodeIgniter与PHP5.6的兼容问题
2015/07/16 PHP
PHP连接MSSQL方法汇总
2016/02/05 PHP
php进行ip地址掩码运算处理的方法
2016/07/11 PHP
php格式文件打开的四种方法
2018/02/24 PHP
PHP写API输出的时用echo的原因详解
2019/04/28 PHP
PHP中有关长整数的一些操作教程
2019/09/11 PHP
javascript中判断一个值是否在数组中并没有直接使用
2012/12/17 Javascript
js实现全屏漂浮广告移入光标停止移动
2013/12/02 Javascript
javascript学习笔记(五)原型和原型链详解
2014/10/08 Javascript
js实现ArrayList功能附实例代码
2014/10/29 Javascript
JS数组(Array)处理函数整理
2014/12/07 Javascript
jQuery实现为图片添加镜头放大效果的方法
2015/06/25 Javascript
探讨JavaScript标签位置的存放与功能有无关系
2016/01/15 Javascript
jQuery ajax应用总结
2016/06/02 Javascript
JavaScript基础知识点归纳(推荐)
2016/07/09 Javascript
Scala解析Json字符串的实例详解
2017/10/11 Javascript
jQuery中的类名选择器(.class)用法简单示例
2018/05/14 jQuery
如何在JavaScript中优雅的提取循环内数据详解
2019/03/04 Javascript
koa+mongoose实现简单增删改查接口的示例代码
2019/05/13 Javascript
基于vue、react实现倒计时效果
2019/08/26 Javascript
在Vue中使用this.$store或者是$route一直报错的解决
2019/11/08 Javascript
详解Vue之事件处理
2020/07/10 Javascript
浅谈Python爬虫基本套路
2019/03/25 Python
django-allauth入门学习和使用详解
2019/07/03 Python
关于tensorflow的几种参数初始化方法小结
2020/01/04 Python
pytorch 模拟关系拟合——回归实例
2020/01/14 Python
CSS3 绘制BMW logo实的现代码
2013/04/25 HTML / CSS
美国女性服饰销售网站:Nasty Gal(坏女孩)
2016/07/26 全球购物
党员公开承诺践诺书
2014/03/25 职场文书
2015年大学生社会实践评语
2015/03/26 职场文书
材料采购员岗位职责
2015/04/03 职场文书
2015年扶贫帮困工作总结
2015/05/20 职场文书
小学语文国培研修日志
2015/11/13 职场文书
Python开发工具Pycharm的安装以及使用步骤总结
2021/06/24 Python
pycharm部署django项目到云服务器的详细流程
2021/06/29 Python