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列表append和+的区别浅析
Feb 02 Python
浅谈Python2.6和Python3.0中八进制数字表示的区别
Apr 28 Python
python模糊图片过滤的方法
Dec 14 Python
Python列表常见操作详解(获取,增加,删除,修改,排序等)
Feb 18 Python
详解pandas删除缺失数据(pd.dropna()方法)
Jun 25 Python
Django中间件基础用法详解
Jul 18 Python
Python FFT合成波形的实例
Dec 04 Python
基于python调用psutil模块过程解析
Dec 20 Python
在Windows上安装和配置 Jupyter Lab 作为桌面级应用程序教程
Apr 22 Python
Python如何在单元测试中给对象打补丁
Aug 03 Python
PyCharm 光标变成黑块的解决方式
Feb 06 Python
Python MNIST手写体识别详解与试练
Nov 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
PHP常用的文件操作函数经典收藏
2013/04/02 PHP
CURL的学习和应用(附多线程实现)
2013/06/03 PHP
Android ProgressBar进度条和ProgressDialog进度框的展示DEMO
2013/06/19 PHP
ThinkPHP模板Switch标签用法示例
2014/06/30 PHP
Yii2中简单的场景使用介绍
2017/06/02 PHP
JS 无法通过W3C验证的处理方法
2010/03/09 Javascript
jquery固定底网站底部菜单效果
2013/08/13 Javascript
通过遮罩层实现浮层DIV登录的js代码
2014/02/07 Javascript
JavaScript如何调试有哪些建议和技巧附五款有用的调试工具
2015/10/28 Javascript
jquery实现垂直和水平菜单导航栏
2020/08/27 Javascript
jquery-mobile表单的创建方法详解
2016/11/23 Javascript
浅谈jquery中ajax跨域提交的时候会有2次请求的问题
2017/11/10 jQuery
用npm-run实现自动化任务的方法示例
2019/01/14 Javascript
webpack项目使用eslint建立代码规范实现
2019/05/16 Javascript
在vue中使用jsx语法的使用方法
2019/09/30 Javascript
vue 组件简介
2020/07/31 Javascript
[01:36:17]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第一场 1月31日
2021/03/11 DOTA
python实现问号表达式(?)的方法
2013/11/27 Python
Python使用sftp实现上传和下载功能(实例代码)
2017/03/14 Python
python中os和sys模块的区别与常用方法总结
2017/11/14 Python
Django中更改默认数据库为mysql的方法示例
2018/12/05 Python
Python实用工具FuckIt.py介绍
2019/07/02 Python
三个python爬虫项目实例代码
2019/12/28 Python
PyTorch在Windows环境搭建的方法步骤
2020/05/12 Python
python 解决函数返回return的问题
2020/12/05 Python
瑞士首家网上药店折扣店:McDrogerie
2020/12/22 全球购物
如何执行一个shell程序
2012/11/23 面试题
Java Servlet的主要功能和作用是什么
2014/02/14 面试题
《小山羊和小灰兔》教学反思
2014/02/19 职场文书
人民教师求职自荐信
2014/03/12 职场文书
群众路线个人整改措施
2014/10/24 职场文书
小学四年级学生评语
2014/12/26 职场文书
惹女朋友生气检讨书
2015/05/06 职场文书
矛盾论读书笔记
2015/06/29 职场文书
SpringBoot+Redis实现布隆过滤器的示例代码
2022/03/17 Java/Android
使用MybatisPlus打印sql语句
2022/04/22 SQL Server