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 当前全局变量和入口参数的所有属性
Jul 01 Python
python里使用正则的findall函数的实例详解
Oct 19 Python
Python设计模式之中介模式简单示例
Jan 09 Python
Python实现的求解最小公倍数算法示例
May 03 Python
谈谈Python中的while循环语句
Mar 10 Python
解决django服务器重启端口被占用的问题
Jul 26 Python
wxPython实现带颜色的进度条
Nov 19 Python
Python hashlib加密模块常用方法解析
Dec 18 Python
浅谈keras中自定义二分类任务评价指标metrics的方法以及代码
Jun 11 Python
python能否java成为主流语言吗
Jun 22 Python
Python中三维坐标空间绘制的实现
Sep 22 Python
pdf论文中python画的图Type 3 fonts字体不兼容的解决方案
Apr 24 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
Blitz templates 最快的PHP模板引擎
2010/04/06 PHP
深入Apache与Nginx的优缺点比较详解
2013/06/17 PHP
深入剖析PHP中printf()函数格式化使用
2016/05/23 PHP
Yii遍历行下每列数据的方法
2016/10/17 PHP
PHP文件管理之实现网盘及压缩包的功能操作
2017/09/20 PHP
PHP正则表达式笔记与实例详解
2019/05/09 PHP
Laravel 关联模型-关联新增和关联更新的方法
2019/10/10 PHP
了解jQuery技巧来提高你的代码
2010/01/08 Javascript
JavaScript DOM 学习第五章 表单简介
2010/02/19 Javascript
php对mongodb的扩展(初识如故)
2012/11/11 Javascript
onkeydown事件解决按回车键直接提交数据的需求
2013/04/11 Javascript
AngularJS入门知识之MVW类框架的编程思想探讨
2014/12/08 Javascript
Node.js抓取中文网页乱码问题和解决方法
2015/02/10 Javascript
浅谈NodeJS中require路径问题
2015/05/07 NodeJs
js实现消息滚动效果
2017/01/18 Javascript
简单实现js倒计时功能
2017/02/13 Javascript
微信小程序实现传参数的几种方法示例
2018/01/10 Javascript
Vue写一个简单的倒计时按钮功能
2018/04/20 Javascript
详解SPA中前端路由基本原理与实现方式
2018/09/12 Javascript
jquery分页插件pagination使用教程
2018/10/23 jQuery
基于Fixed定位的框选功能的实现代码
2019/05/13 Javascript
微信小程序 网络通信实现详解
2019/07/23 Javascript
Vue 3.0双向绑定原理的实现方法
2019/10/23 Javascript
async/await让异步操作同步执行的方法详解
2019/11/01 Javascript
vue3 watch和watchEffect的使用以及有哪些区别
2021/01/26 Vue.js
[02:40]DOTA2殁境神蚀者 英雄基础教程
2013/11/26 DOTA
python通过urllib2爬网页上种子下载示例
2014/02/24 Python
用Python编写一个国际象棋AI程序
2014/11/28 Python
Python cookbook(数据结构与算法)将多个映射合并为单个映射的方法
2018/04/19 Python
python+selenium 简易地疫情信息自动打卡签到功能的实现代码
2020/08/22 Python
canvas实现二维码和图片合成的示例代码
2018/08/01 HTML / CSS
加拿大健康、婴儿和美容产品在线购物:Well.ca
2016/11/30 全球购物
英国领先的高街书籍专家:Waterstones
2018/02/01 全球购物
自动化专业个人求职信范文
2013/12/30 职场文书
公证委托书模板
2014/04/03 职场文书
消防隐患整改通知书
2015/04/22 职场文书