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中去空格函数的用法
Aug 21 Python
简单说明Python中的装饰器的用法
Apr 24 Python
python+opencv轮廓检测代码解析
Jan 05 Python
python 集合 并集、交集 Series list set 转换的实例
May 29 Python
解决安装tensorflow遇到无法卸载numpy 1.8.0rc1的问题
Jun 13 Python
python实现ID3决策树算法
Aug 29 Python
python selenium循环登陆网站的实现
Nov 04 Python
利用python实现逐步回归
Feb 24 Python
Django实现随机图形验证码的示例
Oct 15 Python
Python读写csv文件流程及异常解决
Oct 20 Python
python中numpy数组与list相互转换实例方法
Jan 29 Python
python 制作本地应用搜索工具
Feb 27 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语法(1)
2006/10/09 PHP
PHP 多维数组排序实现代码
2009/08/05 PHP
php 计算两个时间戳相隔的时间的函数(小时)
2009/12/18 PHP
php数组比较实现查找连续数的方法
2015/07/29 PHP
关于PHP中字符串与多进制转换函数的实例代码
2016/11/03 PHP
thinkPHP5.0框架应用请求生命周期分析
2017/03/25 PHP
JavaScript 继承使用分析
2011/05/12 Javascript
jquery随机展示头像代码
2011/12/21 Javascript
深入理解JavaScript系列(3) 全面解析Module模式
2012/01/15 Javascript
css3元素简单的闪烁效果实现(html5 jquery)
2013/12/28 Javascript
jQuery中:not选择器用法实例
2014/12/30 Javascript
jQuery+css实现炫目的动态块漂移效果
2016/01/28 Javascript
xmlplus组件设计系列之列表(4)
2017/04/26 Javascript
vue使用drag与drop实现拖拽的示例代码
2017/09/07 Javascript
AngularJS实现的获取焦点及失去焦点时的表单验证功能示例
2017/10/25 Javascript
Node+OCR实现图像文字识别功能
2018/11/26 Javascript
3分钟了解vue数据劫持的原理实现
2019/05/01 Javascript
解决layui动态加载复选框无法选中的问题
2019/09/20 Javascript
vue实现分页的三种效果
2020/06/23 Javascript
微信小程序tab左右滑动切换功能的实现代码
2021/02/08 Javascript
Python扫描IP段查看指定端口是否开放的方法
2015/06/09 Python
win系统下为Python3.5安装flask-mongoengine 库
2016/12/20 Python
Python实现从SQL型数据库读写dataframe型数据的方法【基于pandas】
2019/03/18 Python
python实现对列表中的元素进行倒序打印
2019/11/23 Python
Python控制台实现交互式环境执行
2020/06/09 Python
Kingsoft金山公司C/C++笔试题
2016/05/10 面试题
经典c++面试题二
2015/08/14 面试题
创业计划书的主要内容有哪些
2014/01/29 职场文书
优秀学生评语大全
2014/04/25 职场文书
运动会演讲稿50字
2014/08/25 职场文书
弄虚作假心得体会
2014/09/10 职场文书
2014旅游局领导班子四风问题对照检查材料思想汇报
2014/09/19 职场文书
2014会计年终工作总结
2014/12/20 职场文书
《狼王梦》读后感:可怜天下父母心
2019/11/01 职场文书
Java数组与堆栈相关知识总结
2021/06/29 Java/Android
Vue的列表之渲染,排序,过滤详解
2022/02/24 Vue.js