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 中使用 GLOBAL引发的一系列问题
Oct 12 Python
Python中模块string.py详解
Mar 12 Python
Python实现读取json文件到excel表
Nov 18 Python
python3调用R的示例代码
Feb 23 Python
Python 中的range(),以及列表切片方法
Jul 02 Python
Python爬虫——爬取豆瓣电影Top250代码实例
Apr 17 Python
python循环定时中断执行某一段程序的实例
Jun 29 Python
使用python实现滑动验证码功能
Aug 05 Python
Python实现微信中找回好友、群聊用户撤回的消息功能示例
Aug 23 Python
python 列表、字典和集合的添加和删除操作
Dec 16 Python
python属于解释语言吗
Jun 11 Python
python基础之while循环语句的使用
Apr 20 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相当简单的分页类
2008/10/02 PHP
php下清空字符串中的HTML标签的代码
2010/09/06 PHP
Javascript & DHTML 实例编程(教程)基础知识
2007/06/02 Javascript
js 深拷贝函数
2008/12/04 Javascript
js导出table到excel同时兼容FF和IE示例
2013/09/03 Javascript
angularJS 中$scope方法使用指南
2015/02/09 Javascript
javascript入门之window对象【新手必看】
2016/11/22 Javascript
AngularJS实现给动态生成的元素绑定事件的方法
2016/12/14 Javascript
JavaScript使用简单正则表达式的数据验证功能示例
2017/01/13 Javascript
JavaScript轮播图简单制作方法
2017/02/20 Javascript
Vuejs中使用markdown服务器端渲染的示例
2017/11/22 Javascript
浅谈react-router HashRouter和BrowserRouter的使用
2017/12/29 Javascript
基于datepicker定义自己的angular时间组件的示例
2018/03/14 Javascript
vue项目移动端实现ip输入框问题
2019/03/19 Javascript
一些手写JavaScript常用的函数汇总
2019/04/16 Javascript
JS指定音频audio在某个时间点进行播放
2020/11/28 Javascript
python使用MySQLdb访问mysql数据库的方法
2015/08/03 Python
详解Python读取配置文件模块ConfigParser
2017/05/11 Python
Django ORM 自定义 char 类型字段解析
2019/08/09 Python
Pycharm中出现ImportError:DLL load failed:找不到指定模块的解决方法
2019/09/17 Python
重写django的model下的objects模型管理器方式
2020/05/15 Python
Django中的AutoField字段使用
2020/05/18 Python
HTML5之SVG 2D入门10—滤镜的定义及使用
2013/01/30 HTML / CSS
html5中 media(播放器)的api使用指南
2014/12/26 HTML / CSS
Paul Smith英国官网:英国国宝级时装品牌
2019/03/21 全球购物
Nixon手表英国官网:美国尼克松手表品牌
2020/02/10 全球购物
什么情况下你必须要把一个类定义为abstract的
2013/01/06 面试题
理工大学毕业生自荐信
2013/11/01 职场文书
养殖人员的创业计划书范文
2013/12/26 职场文书
期终自我鉴定
2014/02/17 职场文书
2014财务年度工作总结
2014/11/11 职场文书
2014年安全保卫工作总结
2014/11/13 职场文书
新员工入职欢迎词
2015/01/23 职场文书
开业典礼致辞
2015/07/29 职场文书
python四种出行路线规划的实现
2021/06/23 Python
PostgreSQL 插入INSERT、删除DELETE、更新UPDATE、事务transaction
2022/04/12 PostgreSQL