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中使用PIL库实现图片高斯模糊实例
Feb 08 Python
Python开发的实用计算器完整实例
May 10 Python
Python实现动态图解析、合成与倒放
Jan 18 Python
tensorflow创建变量以及根据名称查找变量
Mar 10 Python
Python代码实现http/https代理服务器的脚本
Aug 12 Python
Pytorch加载部分预训练模型的参数实例
Aug 18 Python
python 递归调用返回None的问题及解决方法
Mar 16 Python
python自定义函数def的应用详解
Jun 03 Python
详解如何修改jupyter notebook的默认目录和默认浏览器
Jan 24 Python
Django 实现jwt认证的示例
Apr 30 Python
python spilt()分隔字符串的实现示例
May 21 Python
pycharm安装深度学习pytorch的d2l包失败问题解决
Mar 25 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实现下载限制速度示例分享
2014/02/13 PHP
JSQL  一个 web DB 的封装
2010/05/05 Javascript
jquery如何把参数列严格转换成数组实现思路
2013/04/01 Javascript
jquery左右滚动焦点图banner图片鼠标经过显示上下页按钮
2013/10/11 Javascript
jquery+json实现数据列表分页示例代码
2013/11/15 Javascript
js实现简单div拖拽功能实例
2015/05/12 Javascript
聊一聊JS中的prototype
2016/09/29 Javascript
JavaScript在form表单中使用button按钮实现submit提交方法
2017/01/23 Javascript
使用jQuery的load方法设计动态加载及解决被加载页面js失效问题
2017/03/01 Javascript
使用js获取伪元素的content实例
2017/10/24 Javascript
vue 路由嵌套高亮问题的解决方法
2018/05/17 Javascript
Angular6项目打包优化的实现方法
2019/12/15 Javascript
[02:11]2016国际邀请赛中国区预选赛全程回顾
2016/07/01 DOTA
[01:11:27]2018DOTA2亚洲邀请赛小组赛 A组加赛 Newbee vs Optic
2018/04/03 DOTA
在Python下使用Txt2Html实现网页过滤代理的教程
2015/04/11 Python
Python中的Socket 与 ScoketServer 通信及遇到问题解决方法
2019/04/01 Python
python下的opencv画矩形和文字注释的实现方法
2019/07/09 Python
学习和使用python的13个理由
2019/07/30 Python
python爬虫 基于requests模块的get请求实现详解
2019/08/20 Python
利用Python产生加密表和解密表的实现方法
2019/10/15 Python
flask 实现token机制的示例代码
2019/11/07 Python
jupyter notebook 重装教程
2020/04/16 Python
scrapy-redis分布式爬虫的搭建过程(理论篇)
2020/09/29 Python
IE浏览器单独写CSS样式的几种方法
2014/10/14 HTML / CSS
英国最大的电脑零售连锁店集团:PC World
2016/10/10 全球购物
购买瑞典当代设计的腕表和太阳眼镜:TRIWA
2016/10/30 全球购物
美国室内和室外装饰花盆购物网站:ePlanters
2019/03/22 全球购物
Otiumberg官网:英国半精致珠宝品牌
2021/01/16 全球购物
《小猫刮胡子》教学反思
2014/02/21 职场文书
社会学专业求职信
2014/02/24 职场文书
挂牌仪式主持词
2014/03/20 职场文书
2014年汽车销售工作总结
2014/12/01 职场文书
百万英镑观后感
2015/06/09 职场文书
JavaWeb 入门:Hello Servlet
2021/07/16 Java/Android
Python编程源码报错解决方法总结经验分享
2021/10/05 Python
JDK8中String的intern()方法实例详细解读
2022/09/23 Java/Android