Selenium获取登录Cookies并添加Cookies自动登录的方法


Posted in Python onDecember 04, 2020

本章中用到的关键方法如下:

  • get_cookies(): 获得所有cookie信息。
  • get_cookie(name): 返回字典的key为“name”的cookie信息。
  • add_cookie(cookie_dict): 添加cookie。“cookie_dict”指字典对象,必须有name 和value 值。
  • delete_cookie(name,optionsString):删除cookie信息。“name”是要删除的cookie的名称,“optionsString”是该cookie的选项,目前支持的选项包括“路径”,“域”。
  • delete_all_cookies(): 删除所有cookie信息。

1、模拟登陆并获取Cookies

from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')

# 模拟登陆
driver.find_element_by_link_text('登录').click()
time.sleep(2)
driver.find_element_by_xpath('//*[@id="TANGRAM__PSP_10__footerULoginBtn"]').click()
time.sleep(2)
driver.find_element_by_name("userName").send_keys("账号")
driver.find_element_by_name("password").send_keys("密码")
driver.find_element_by_xpath('//*[@id="TANGRAM__PSP_10__submit"]').click()
time.sleep(20) #可能会出现验证码,手动点一下

# 获取cookies
cookies = driver.get_cookies()
print(cookies)
driver.quit()

2、添加Cookies自动登录

注:

获取Cookies的时候每个字典的字段不统一,全部添加会报错,所以本人只添加了比较重要的几个字段。
把代码中cookies字段的list换成上一步获取的内容,或者自己构建。

from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
time.sleep(2)
cookies = [] #换成上一步获取的Cookies
for cookie in cookies:
 driver.add_cookie(
 {
  'domain':cookie['domain'],
  'name': cookie['name'],
  'value':cookie['value'],
  'path': cookie['path']
 }
 )
# # 刷新页面
driver.refresh()

# driver.quit() #为方便查看,页面就不关了

selenium 使用 cookies

selenium 需要先打开一个网址,才能加载进去cookies(知道cookies是哪个网站的)。添加完cookies再打开网址,使用cookies

前面读取的cookies 是一个包含着每一个cookies的name,value 的字典,即name1:value1,name2:value2字典。遍历添加网站使用的每一个cookies的name,value.

tbCookies = readTaobaoCookies()

brower.get("https://www.taobao.com")
for cookie in tbCookies:
 brower.add_cookie({
 "domain":".taobao.com",
 "name":cookie,
 "value":tbCookies[cookie],
 "path":'/',
 "expires":None
 })
brower.get("https://www.taobao.com")

Selenium文集传送门:

标题 简介
Python爬虫 - Selenium(1)安装和简单使用 详细介绍Selenium的依赖环境在Windows和Centos7上的安装及简单使用
Python爬虫 - Selenium(2)元素定位和WebDriver常用方法 详细介绍定位元素的8种方式并配合点击和输入、提交、获取断言信息等方法的使用
Python爬虫 - Selenium(3)控制浏览器的常用方法 详细介绍自定义浏览器窗口大小或全屏、控制浏览器后退、前进、刷新浏览器等方法的使用
Python爬虫 - Selenium(4)配置启动项参数 详细介绍Selenium启动项参数的配置,其中包括无界面模式、浏览器窗口大小设置、浏览器User-Agent (请求头)等等
Python爬虫 - Selenium(5)鼠标事件 详细介绍鼠标右击、双击、拖动、鼠标悬停等方法的使用
Python爬虫 - Selenium(6)键盘事件 详细介绍键盘的操作,几乎包含所有常用按键以及组合键
Python爬虫 - Selenium(7)多窗口切换 详细介绍Selenium是如何实现在不同的窗口之间自由切换
Python爬虫 - Selenium(8)frame/iframe表单嵌套页面 详细介绍如何从当前定位的主体切换为frame/iframe表单的内嵌页面中
Python爬虫 - Selenium(9)警告框(弹窗)处理 详细介绍如何定位并处理多类警告弹窗
Python爬虫 - Selenium(10)下拉框处理 详细介绍如何灵活的定位并处理下拉框
Python爬虫 - Selenium(11)文件上传 详细介绍如何优雅的通过send_keys()指定文件进行上传
Python爬虫 - Selenium(12)获取登录Cookies,并添加Cookies自动登录 详细介绍如何获取Cookies和使用Cookies进行自动登录
Python爬虫 - Selenium(13)设置元素等待 详细介绍如何优雅的设置元素等待时间,防止程序运行过快而导致元素定位失败
Python爬虫 - Selenium(14)窗口截图 详细介绍如何使用窗口截图
Python爬虫 - Selenium(15)关闭浏览器 详细介绍两种关闭窗口的区别

到此这篇关于Selenium获取登录Cookies并添加Cookies自动登录的方法的文章就介绍到这了,更多相关Selenium获取登录Cookies内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python运行的17个时新手常见错误小结
Aug 07 Python
Python中文件操作简明介绍
Apr 13 Python
用于统计项目中代码总行数的Python脚本分享
Apr 21 Python
python数据结构之链表的实例讲解
Jul 25 Python
python3获取两个日期之间所有日期,以及比较大小的实例
Apr 08 Python
python如何生成各种随机分布图
Aug 27 Python
Python 2/3下处理cjk编码的zip文件的方法
Apr 26 Python
Python直接赋值、浅拷贝与深度拷贝实例分析
Jun 18 Python
Python socket模块方法实现详解
Nov 05 Python
pytorch获取模型某一层参数名及参数值方式
Dec 30 Python
opencv python Canny边缘提取实现过程解析
Feb 03 Python
Python unittest 自动识别并执行测试用例方式
Mar 09 Python
Python爬虫中Selenium实现文件上传
Dec 04 #Python
利用python进行文件操作
Dec 04 #Python
Python爬虫之Selenium下拉框处理的实现
Dec 04 #Python
Python爬虫之Selenium警告框(弹窗)处理
Dec 04 #Python
Python爬虫之Selenium中frame/iframe表单嵌套页面
Dec 04 #Python
Python爬虫之Selenium多窗口切换的实现
Dec 04 #Python
Python爬虫之Selenium实现键盘事件
Dec 04 #Python
You might like
关于zend studio 出现乱码问题的总结
2013/06/23 PHP
php获取数据库中数据的实现方法
2017/06/01 PHP
PHP进阶学习之命名空间基本用法分析
2019/06/18 PHP
PHP设计模式之组合模式定义与应用示例
2020/02/01 PHP
用js实现的自定义的对话框的实现代码
2010/03/21 Javascript
JS判断页面加载状态以及添加遮罩和缓冲动画的代码
2012/10/11 Javascript
JS获取并操作iframe中元素的方法
2013/03/21 Javascript
Javascript学习笔记之 对象篇(四) : for in 循环
2014/06/24 Javascript
avalonjs制作响应式瀑布流特效
2015/05/06 Javascript
简介JavaScript中substring()方法的使用
2015/06/06 Javascript
使用jQuery在对象中缓存选择器的简单方法
2015/06/30 Javascript
Angularjs中如何使用filterFilter函数过滤
2016/02/06 Javascript
D3.js实现折线图的方法详解
2016/09/21 Javascript
JavaScript常见事件处理程序实例总结
2019/01/05 Javascript
koa2服务端使用jwt进行鉴权及路由权限分发的流程分析
2019/07/22 Javascript
微信小程序使用npm包的方法步骤
2019/08/13 Javascript
[03:12]2016完美“圣”典风云人物:单车专访
2016/12/02 DOTA
python获取beautifulphoto随机某图片代码实例
2013/12/18 Python
跟老齐学Python之再深点,更懂list
2014/09/20 Python
Python简单进程锁代码实例
2015/04/27 Python
使用python实现rsa算法代码
2016/02/17 Python
让Django支持Sql Server作后端数据库的方法
2018/05/29 Python
Python3 读、写Excel文件的操作方法
2018/10/20 Python
Python OrderedDict的使用案例解析
2019/10/25 Python
Python爬取豆瓣视频信息代码实例
2019/11/16 Python
python实现四人制扑克牌游戏
2020/04/22 Python
Django 解决由save方法引发的错误
2020/05/21 Python
HTML5单页面手势滑屏切换原理
2016/03/21 HTML / CSS
Mankind西班牙男士护肤品网站:购买皮肤护理、护发和剃须
2017/04/27 全球购物
印度民族服装购物网站:BIBA
2019/08/05 全球购物
环境科学专业个人求职信
2013/09/26 职场文书
班主任工作经验交流材料
2014/05/13 职场文书
2014年公路养护工作总结
2014/12/04 职场文书
小学中队活动总结
2015/05/11 职场文书
复兴之路纪录片观后感
2015/06/02 职场文书
星际争霸 Light vs Action 一场把教主看到鬼畜的比赛
2022/04/01 星际争霸