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的SimpleHTTPServer源码来解析socket通信
Jun 27 Python
python 读写、创建 文件的方法(必看)
Sep 12 Python
Python使用pymysql小技巧
Jun 04 Python
Python文件的读写和异常代码示例
Oct 31 Python
python使用Tesseract库识别验证
Mar 21 Python
python判断一个集合是否为另一个集合的子集方法
May 04 Python
wxPython的安装与使用教程
Aug 31 Python
python 美化输出信息的实例
Oct 15 Python
pytorch 准备、训练和测试自己的图片数据的方法
Jan 10 Python
浅谈Keras的Sequential与PyTorch的Sequential的区别
Jun 17 Python
Python调用SMTP服务自动发送Email的实现步骤
Feb 07 Python
如何利用opencv判断两张图片是否相同详解
Jul 07 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
PHP新手上路(十二)
2006/10/09 PHP
php实现和c#一致的DES加密解密实例
2017/07/24 PHP
JavaScript版代码高亮
2006/06/26 Javascript
getElementsByTagName vs selectNodes效率 及兼容的selectNodes实现
2010/02/26 Javascript
javascript 45种缓动效果 非常酷
2011/06/28 Javascript
js/jquery判断浏览器的方法小结
2014/09/02 Javascript
EasyUI,点击开启编辑框,并且编辑框获得焦点的方法
2015/03/01 Javascript
javascript实现简单的进度条
2015/07/02 Javascript
详解AngularJS中$http缓存以及处理多个$http请求的方法
2016/02/06 Javascript
vue中如何引入jQuery和Bootstrap
2017/04/10 jQuery
微信小程序实战之轮播图(3)
2017/04/17 Javascript
jquery在vue脚手架中的使用方式示例
2017/08/29 jQuery
JS笛卡尔积算法与多重数组笛卡尔积实现方法示例
2017/12/01 Javascript
Vue 全家桶实现移动端酷狗音乐功能
2018/11/16 Javascript
详解vuejs2.0 select 动态绑定下拉框支持多选
2019/04/25 Javascript
vue通信方式EventBus的实现代码详解
2019/06/10 Javascript
详解Python中的type()方法的使用
2015/05/21 Python
详解Python编程中包的概念与管理
2015/10/16 Python
Python处理Excel文件实例代码
2017/06/20 Python
numpy中的高维数组转置实例
2018/04/17 Python
python 生成器需注意的小问题
2020/09/29 Python
vivo智能手机官方商城:vivo
2016/09/22 全球购物
Booking.com西班牙:全球酒店预订
2018/03/30 全球购物
ghd官网:英国ghd直发器品牌
2018/05/04 全球购物
美津浓美国官网:Mizuno美国
2018/08/07 全球购物
戴尔马来西亚官网:Dell Malaysia
2020/05/02 全球购物
php优化查询foreach代码实例讲解
2021/03/24 PHP
普通大学毕业生自荐信
2013/11/04 职场文书
2014年学习雷锋活动总结
2014/03/01 职场文书
党员大会主持词
2014/04/02 职场文书
幼师求职信
2014/06/23 职场文书
毕业生就业推荐表导师评语
2014/12/31 职场文书
2015年幼儿教育工作总结
2015/07/24 职场文书
CSS3鼠标悬浮过渡缩放效果
2021/04/17 HTML / CSS
ORACLE查看当前账号的相关信息
2021/06/18 Oracle
了解MySQL查询语句执行过程(5大组件)
2022/08/14 MySQL