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中使用MELIAE分析程序内存占用实例
Feb 18 Python
python获取标准北京时间的方法
Mar 24 Python
python清除指定目录内所有文件中script的方法
Jun 30 Python
Python使用redis pool的一种单例实现方式
Apr 16 Python
Python+matplotlib实现填充螺旋实例
Jan 15 Python
python 对dataframe下面的值进行大规模赋值方法
Jun 09 Python
详解Django的CSRF认证实现
Oct 09 Python
python实现对输入的密文加密
Mar 20 Python
tensorboard 可以显示graph,却不能显示scalar的解决方式
Feb 15 Python
GDAL 矢量属性数据修改方式(python)
Mar 10 Python
python中逻辑与或(and、or)和按位与或异或(&、|、^)区别
Aug 05 Python
写一个Python脚本下载哔哩哔哩舞蹈区的所有视频
May 31 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 阴历-农历-转换类代码
2012/01/16 PHP
UCenter 批量添加用户的php代码
2012/07/17 PHP
PHP实现一维数组转二维数组的方法
2015/02/25 PHP
centos下file_put_contents()无法写入文件的原因及解决方法
2017/04/01 PHP
详解PHP文件的自动加载(autoloading)
2018/02/04 PHP
msn上的tab功能Firefox对childNodes处理的一个BUG
2008/01/21 Javascript
很多人都是用下面的js刷新站IP和PV
2008/09/05 Javascript
jQuery 获取对象 定位子对象
2010/05/31 Javascript
用JavaScript实现类似于ListBox功能示例代码
2014/03/09 Javascript
js模拟淘宝网的多级选择菜单实现方法
2015/08/18 Javascript
js采用concat和sort将N个数组拼接起来的方法
2016/01/21 Javascript
JS实现获取来自百度,Google,soso,sogou关键词的方法
2016/12/21 Javascript
JS实现给json数组动态赋值的方法示例
2020/03/19 Javascript
js构建二叉树进行数值数组的去重与优化详解
2018/03/26 Javascript
react-router 路由切换动画的实现示例
2018/12/03 Javascript
使用Node.js实现一个多人游戏服务器引擎
2019/03/13 Javascript
详解使用Nuxt.js快速搭建服务端渲染(SSR)应用
2019/03/13 Javascript
JavaScript中var的重要性实例分析
2019/07/09 Javascript
Python字符转换
2008/09/06 Python
Python读写txt文本文件的操作方法全解析
2016/06/26 Python
Python中第三方库Requests库的高级用法详解
2017/03/12 Python
python爬虫入门教程--快速理解HTTP协议(一)
2017/05/25 Python
Python+matplotlib实现华丽的文本框演示代码
2018/01/22 Python
Python基于生成器迭代实现的八皇后问题示例
2018/05/23 Python
pycharm中成功运行图片的配置教程
2018/10/28 Python
python中绕过反爬虫的方法总结
2020/11/25 Python
为什么需要版本控制?
2013/08/08 面试题
全陪导游欢迎词
2014/01/17 职场文书
毕业自我鉴定怎么写
2014/03/25 职场文书
分家协议书
2014/04/21 职场文书
资产运营委托书范本
2014/10/16 职场文书
酒店销售经理岗位职责
2015/04/02 职场文书
法律服务所工作总结
2015/08/10 职场文书
初中班主任工作随笔
2015/08/15 职场文书
《只有一个地球》教学反思
2016/02/16 职场文书
小学2016年“我们的节日·重阳节”活动总结
2016/04/01 职场文书