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编写vim插件
Nov 28 Python
TensorFlow实现RNN循环神经网络
Feb 28 Python
python学习笔记--将python源文件打包成exe文件(pyinstaller)
May 26 Python
Python中asyncio与aiohttp入门教程
Oct 16 Python
在python中使用requests 模拟浏览器发送请求数据的方法
Dec 26 Python
Python实战之制作天气查询软件
May 14 Python
分享一个pycharm专业版安装的永久使用方法
Sep 24 Python
Python run()函数和start()函数的比较和差别介绍
May 03 Python
详解pandas.DataFrame.plot() 画图函数
Jun 14 Python
python如何删除列为空的行
Jul 17 Python
Python变量及数据类型用法原理汇总
Aug 06 Python
用Python制作音乐海报
Jan 26 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
编译问题
2006/10/09 PHP
Win2000+Apache+MySql+PHP4+PERL安装使用小结
2006/10/09 PHP
yii实现创建验证码实例解析
2014/07/31 PHP
php实现复制移动文件的方法
2015/07/29 PHP
PHP入门教程之数学运算技巧总结
2016/09/11 PHP
Laravel5.1 框架表单验证操作实例详解
2020/01/07 PHP
tagName的使用,留一笔
2006/06/26 Javascript
使用onbeforeunload属性后的副作用
2007/03/08 Javascript
js中if语句的几种优化代码写法
2011/03/12 Javascript
JavaScript小技巧整理
2015/12/30 Javascript
基于JS实现新闻列表无缝向上滚动实例代码
2016/01/22 Javascript
javascript实现的全国省市县无刷新多级关联菜单效果代码
2016/08/01 Javascript
jQuery Ajax File Upload实例源码
2016/12/12 Javascript
ES6深入理解之“let”能替代”var“吗?
2017/06/28 Javascript
js时间戳转yyyy-MM-dd HH-mm-ss工具类详解
2019/04/30 Javascript
Angular 多模块项目构建过程
2020/02/13 Javascript
JQuery复选框全选效果如何实现
2020/05/08 jQuery
Python获取linux主机ip的简单实现方法
2016/04/18 Python
python ansible服务及剧本编写
2017/12/29 Python
使用Python实现在Windows下安装Django
2018/10/17 Python
python输入整条数据分割存入数组的方法
2018/11/13 Python
python实现最大优先队列
2019/08/29 Python
Python高级property属性用法实例分析
2019/11/19 Python
Python三维绘图之Matplotlib库的使用方法
2020/09/20 Python
HTML页面中添加Canvas标签示例
2015/01/01 HTML / CSS
借助HTML5 Canvas API制作一个简单的猜字游戏
2016/03/25 HTML / CSS
车间统计员岗位职责
2014/01/05 职场文书
学生安全责任书
2014/04/15 职场文书
陈安之励志演讲稿
2014/08/21 职场文书
乒乓球比赛通知
2015/04/27 职场文书
2015年社区流动人口工作总结
2015/05/12 职场文书
升学宴祝酒词
2015/08/11 职场文书
2016年党员干部廉政承诺书
2016/03/24 职场文书
网络安全倡议书(3篇)
2019/09/18 职场文书
python中os.path.join()函数实例用法
2021/05/26 Python
zabbix配置nginx监控的实现
2022/05/25 Servers