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模块学习 re 正则表达式
May 19 Python
python将文本转换成图片输出的方法
Apr 28 Python
python生成随机图形验证码详解
Nov 08 Python
Python爬虫之正则表达式基本用法实例分析
Aug 08 Python
python使用xlrd模块读取xlsx文件中的ip方法
Jan 11 Python
用Python实现二叉树、二叉树非递归遍历及绘制的例子
Aug 09 Python
利用pyecharts实现地图可视化的例子
Aug 12 Python
python支持多线程的爬虫实例
Dec 21 Python
Python打印特殊符号及对应编码解析
May 07 Python
如何利用Python matplotlib绘制雷达图
Dec 21 Python
python requests模块的使用示例
Apr 07 Python
Python爬虫网络请求之代理服务器和动态Cookies
Apr 12 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动态生成虚拟现实VRML网页
2006/10/09 PHP
php intval的测试代码发现问题
2008/07/27 PHP
php number_format() 函数通过千位分组来格式化数字的实现代码
2013/08/06 PHP
一个php短网址的生成代码(仿微博短网址)
2014/05/07 PHP
php框架知识点的整理和补充
2021/03/01 PHP
jQuery 全选效果实现代码
2009/03/23 Javascript
纯JS实现的批量图片预览加载功能
2011/08/14 Javascript
js解析与序列化json数据(一)json.stringify()的基本用法
2013/02/01 Javascript
jquery实现微博文字输入框 输入时显示输入字数 效果实现
2013/07/12 Javascript
JS分页控件 可用于无刷新分页
2013/07/23 Javascript
javascript获取和判断浏览器窗口、屏幕、网页的高度、宽度等
2014/05/08 Javascript
js数组依据下标删除元素
2015/04/14 Javascript
悬浮广告方法日常收集整理
2016/03/18 Javascript
高效的jQuery代码编写技巧总结
2017/02/22 Javascript
Vue中render方法的使用详解
2018/01/26 Javascript
Javascript执行流程细节原理解析
2020/05/14 Javascript
JavaScript设计模式--桥梁模式引入操作实例分析
2020/05/23 Javascript
Vue通过provide inject实现组件通信
2020/09/03 Javascript
微信小程序canvas实现签名功能
2021/01/19 Javascript
[15:35]教你分分钟做大人:天怒法师
2014/10/30 DOTA
Python比较文件夹比另一同名文件夹多出的文件并复制出来的方法
2015/03/05 Python
Python数据结构与算法之字典树实现方法示例
2017/12/13 Python
pandas获取groupby分组里最大值所在的行方法
2018/04/20 Python
Flask-WTF表单的使用方法
2019/07/12 Python
Python图像处理库PIL的ImageEnhance模块使用介绍
2020/02/26 Python
Python基于pip实现离线打包过程详解
2020/05/15 Python
Flask处理Web表单的实现方法
2021/01/31 Python
River Island美国官网:英国高街时尚品牌
2018/09/04 全球购物
介绍一下mysql的日期和时间函数
2013/03/28 面试题
演讲稿格式
2014/04/30 职场文书
夏季药店促销方案
2014/08/22 职场文书
四风问题个人对照检查剖析材料
2014/09/27 职场文书
2014年社区综治工作总结
2014/11/17 职场文书
2014年司机工作总结
2014/11/21 职场文书
2016年优秀班主任先进事迹材料
2016/02/26 职场文书