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网络编程实例简析
Sep 26 Python
对于Python中RawString的理解介绍
Jul 07 Python
python通过cookie模拟已登录状态的初步研究
Nov 09 Python
python获取当前用户的主目录路径方法(推荐)
Jan 12 Python
Python 基础教程之包和类的用法
Feb 23 Python
Python 从相对路径下import的方法
Dec 04 Python
python matplotlib库直方图绘制详解
Aug 10 Python
python使用docx模块读写docx文件的方法与docx模块常用方法详解
Feb 17 Python
Python第三方包之DingDingBot钉钉机器人
Apr 09 Python
Python Django搭建文件下载服务器的实现
May 10 Python
Python使用openpyxl批量处理数据
Jun 23 Python
Pillow图像处理库安装及使用
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 基本语法格式
2009/12/15 PHP
浅析php与数据库代码开发规范
2013/08/08 PHP
跟我学Laravel之请求(Request)的生命周期
2014/10/15 PHP
php使用Jpgraph绘制柱形图的方法
2015/06/10 PHP
PHP ADODB生成下拉列表框功能示例
2018/05/29 PHP
laravel 配置路由 api和web定义的路由的区别详解
2019/09/03 PHP
让广告代码不再影响你的网页加载速度
2006/07/07 Javascript
复制小说文本时出现的随机乱码的去除方法
2010/09/07 Javascript
高性能Javascript笔记 数据的存储与访问性能优化
2012/08/02 Javascript
angularjs封装bootstrap时间插件datetimepicker
2016/06/20 Javascript
用jquery获取自定义的标签属性的值简单实例
2016/09/17 Javascript
JavaScript实现的鼠标响应颜色渐变效果完整实例
2017/02/18 Javascript
微信小程序中的swiper组件详解
2017/04/14 Javascript
PHP实现记录代码运行时间封装类实例教程
2017/05/08 Javascript
Echarts实现多条折线可拖拽效果
2019/12/19 Javascript
[01:04:22]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 IG vs EG
2018/04/01 DOTA
[01:59][TI9趣味视频] 全明星赛奖励
2019/08/23 DOTA
[38:39]完美世界DOTA2联赛循环赛 IO vs GXR BO2第二场 11.04
2020/11/05 DOTA
对python程序内存泄漏调试的记录
2018/06/11 Python
Python自然语言处理 NLTK 库用法入门教程【经典】
2018/06/26 Python
flask实现验证码并验证功能
2019/12/05 Python
Python for i in range ()用法详解
2020/09/18 Python
CSS3+Sprite实现僵尸行走动画特效源码
2016/01/27 HTML / CSS
台湾最大网路书店:博客来
2018/03/18 全球购物
StubHub美国:购买或出售您的门票
2019/07/09 全球购物
英国最受欢迎的平价女士时装零售商:Roman Originals
2019/11/02 全球购物
亚洲领先的设计购物网站:Pinkoi
2020/11/26 全球购物
ajax是什么及其工作原理
2012/02/08 面试题
优秀团员个人的自我评价
2013/10/02 职场文书
元旦文艺汇演主持词
2014/03/26 职场文书
租赁协议书范本
2014/04/22 职场文书
党员批评与自我批评
2014/10/15 职场文书
2014年平安创建工作总结
2014/11/24 职场文书
Html分层的box-shadow效果的示例代码
2021/03/30 HTML / CSS
python可视化大屏库big_screen示例详解
2021/11/23 Python
TV动画《政宗君的复仇》第二季制作决定PV公布
2022/04/02 日漫