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 相关文章推荐
Windows和Linux下使用Python访问SqlServer的方法介绍
Mar 10 Python
python获取当前计算机cpu数量的方法
Apr 18 Python
Win7下搭建python开发环境图文教程(安装Python、pip、解释器)
May 17 Python
python实现简单淘宝秒杀功能
May 03 Python
python爬虫框架scrapy实现模拟登录操作示例
Aug 02 Python
python实现从pdf文件中提取文本,并自动翻译的方法
Nov 28 Python
python random从集合中随机选择元素的方法
Jan 23 Python
Python实现的调用C语言函数功能简单实例
Mar 13 Python
Django的Modelforms用法简介
Jul 27 Python
Pycharm最常用的快捷键及使用技巧
Mar 05 Python
Python操作Elasticsearch处理timeout超时
Jul 17 Python
Django日志及中间件模块应用案例
Sep 10 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
追求程序速度,而不是编程的速度
2008/04/23 PHP
PHP遍历二维数组的代码
2011/04/22 PHP
深入解析yii权限分级式访问控制的实现(非RBAC法)
2013/06/13 PHP
php实现parent调用父类的构造方法与被覆写的方法
2015/02/11 PHP
PHP加密解密函数详解
2015/10/28 PHP
PHP使用redis实现统计缓存mysql压力的方法
2015/11/14 PHP
php结合mysql与mysqli扩展处理事务的方法
2016/06/29 PHP
PHP数组操作简单案例分析
2016/10/15 PHP
jQuery学习笔记之DOM对象和jQuery对象
2010/12/22 Javascript
基于JQuery的一句话搞定手风琴菜单
2012/09/14 Javascript
jquery获取div宽度的实现思路与代码
2013/01/13 Javascript
JS画5角星方法介绍
2013/09/17 Javascript
jquery实现个人中心导航菜单效果和美观都非常不错
2014/09/02 Javascript
详谈javascript中DOM的基本属性
2015/02/26 Javascript
JQuery解析XML的方法小结
2016/04/02 Javascript
Vue自定义指令封装节流函数的方法示例
2018/07/09 Javascript
详解webpack import()动态加载模块踩坑
2018/07/17 Javascript
[07:54]DOTA2-DPC中国联赛 正赛 iG vs VG 选手采访
2021/03/11 DOTA
python中self原理实例分析
2015/04/30 Python
python利用不到一百行代码实现一个小siri
2017/03/02 Python
对numpy中shape的深入理解
2018/06/15 Python
python调用支付宝支付接口流程
2019/08/15 Python
浅谈cv2.imread()和keras.preprocessing中的image.load_img()区别
2020/06/12 Python
解决pyinstaller 打包exe文件太大,用pipenv 缩小exe的问题
2020/07/13 Python
html5使用canvas画一条线
2014/12/15 HTML / CSS
安全生产实施方案
2014/02/23 职场文书
淘宝好评语大全
2014/05/05 职场文书
写求职信有哪些注意事项
2014/05/08 职场文书
财务会计求职信范文
2015/03/20 职场文书
第一节英语课开场白
2015/06/01 职场文书
2015年暑期社会实践总结
2015/07/13 职场文书
2019银行员工个人工作自我鉴定
2019/06/27 职场文书
go select编译期的优化处理逻辑使用场景分析
2021/06/28 Golang
配置Kubernetes外网访问集群
2022/03/31 Servers
Python利用FlashText算法实现替换字符串
2022/03/31 Python
React自定义hook的方法
2022/06/25 Javascript