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 + hadoop streaming 分布式编程(一) -- 原理介绍,样例程序与本地调试
Jul 14 Python
Python利用pyHook实现监听用户鼠标与键盘事件
Aug 21 Python
Python随机生成数模块random使用实例
Apr 13 Python
Python3通过Luhn算法快速验证信用卡卡号的方法
May 14 Python
Python中的random()方法的使用介绍
May 15 Python
Python查询阿里巴巴关键字排名的方法
Jul 08 Python
Django实现登录随机验证码的示例代码
Jun 20 Python
python实现黑客字幕雨效果
Jun 21 Python
Python3爬取英雄联盟英雄皮肤大图实例代码
Nov 14 Python
python 设置输出图像的像素大小方法
Jul 04 Python
python深copy和浅copy区别对比解析
Dec 26 Python
Python ATM功能实现代码实例
Mar 19 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颜色转换函数hex-rgb(将十六进制格式转成十进制格式)
2013/09/23 PHP
php数组添加元素方法小结
2014/12/20 PHP
PHP制作用户注册系统
2015/10/23 PHP
用js实现下载远程文件并保存在本地的脚本
2008/05/06 Javascript
Jquery实战_读书笔记2 选择器
2010/01/22 Javascript
jQuery 表单验证扩展(四)
2010/10/20 Javascript
jQuery1.5.1 animate方法源码阅读
2011/04/05 Javascript
不同的jQuery API来处理不同的浏览器事件
2012/12/09 Javascript
jquery实现marquee效果(文字或者图片的水平垂直滚动)
2013/01/07 Javascript
jquery删除数据记录时的弹出提示效果
2014/05/06 Javascript
jQuery实现按钮的点击 全选/反选 单选框/复选框 文本框 表单验证
2015/06/25 Javascript
javascript正则表达式定义(语法)总结
2016/01/08 Javascript
JavaScript 冒泡排序和选择排序的实现代码
2016/09/03 Javascript
javascript添加前置0(补零)的几种方法
2017/01/05 Javascript
常用jQuery选择器汇总
2017/02/02 Javascript
Vue表单及表单绑定方法
2018/09/04 Javascript
layDate插件设置开始和结束时间
2018/11/15 Javascript
node.js express框架简介与实现
2019/07/23 Javascript
java实现单链表增删改查的实例代码详解
2019/08/30 Javascript
初学vue出现空格警告的原因及其解决方案
2019/10/31 Javascript
python实现剪切功能
2019/01/23 Python
PyQt5 加载图片和文本文件的实例
2019/06/14 Python
Django中文件上传和文件访问微项目的方法
2020/04/27 Python
Python 使用生成器代替线程的方法
2020/08/04 Python
6种非常炫酷的CSS3按钮边框动画特效
2016/03/16 HTML / CSS
HTML5语音识别标签写法附图
2013/11/18 HTML / CSS
美国婴儿用品及配件购买网站:Munchkin
2019/04/03 全球购物
倩碧澳大利亚官网:Clinique澳大利亚
2019/07/22 全球购物
保险专业大专生求职信
2013/10/26 职场文书
大学本科毕业生的自我鉴定范文
2013/11/19 职场文书
高中物理教学反思
2014/02/08 职场文书
2014年学习雷锋活动总结
2014/03/01 职场文书
孝老爱亲事迹材料
2014/12/24 职场文书
比赛主持人开场白
2015/05/29 职场文书
干货分享:推荐信写作技巧!
2019/06/21 职场文书
Android开发手册TextInputLayout样式使用示例
2022/06/10 Java/Android