python selenium操作cookie的实现


Posted in Python onMarch 18, 2020

由于HTTP协议是无状态协议,所以服务器与客户端通过http协议通讯时,服务器不能记录客户端的信息。

为了解决这个问题,通过 Cookie 和 Session 技术来实现。

  • Cookie保存在客户端中
  • Session保存在服务器中

cookie的属性

一般cookie所具有的属性,包括:

Domain:域,表示当前cookie所属于哪个域或子域下面。

对于服务器返回的Set-Cookie中,如果没有指定Domain的值,那么其Domain的值是默认为当前所提交的http的请求所对应的主域名的。比如访问 http://www.example.com,返回一个cookie,没有指名domain值,那么其为值为默认的www.example.com。

Path:表示cookie的所属路径。

Expire time/Max-age:表示了cookie的有效期。expire的值,是一个时间,过了这个时间,该cookie就失效了。或者是用max-age指定当前cookie是在多长时间之后而失效。如果服务器返回的一个cookie,没有指定其expire time,那么表明此cookie有效期只是当前的session,即是session cookie,当前session会话结束后,就过期了。对应的,当关闭(浏览器中)该页面的时候,此cookie就应该被浏览器所删除了。

secure:表示该cookie只能用https传输。一般用于包含认证信息的cookie,要求传输此cookie的时候,必须用https传输。

httponly:表示此cookie必须用于http或https传输。这意味着,浏览器脚本,比如javascript中,是不允许访问操作此cookie的。

得到cookie

#从百度首页登录百度账号,并获取cookie
from selenium import webdriver
from time import sleep
import json
 
#启动chome浏览器并访问百度首页
option=webdriver.ChromeOptions()
option.add_argument('--start-maximized')
drive=webdriver.Chrome(options=option)
drive.get('http://www.baidu.com')
print(drive.title)
 
#点击“登录”
eled=drive.find_element_by_link_text("登录")
eled.click()
sleep(2)
 
#点击“用户名登录”
namelogin=drive.find_element_by_css_selector('p.tang-pass-footerBarULogin')
namelogin.click()
sleep(2)
 
#输入用户名,密码并登录
username = drive.find_element_by_id('TANGRAM__PSP_10__userName')
username.send_keys('********')
sleep(1)
 
password = drive.find_element_by_id('TANGRAM__PSP_10__password')
password.send_keys('********')
sleep(1)
 
submit = drive.find_element_by_id('TANGRAM__PSP_10__submit')
submit.click()
sleep(3)
 
#获取网站cookie
diccookie=drive.get_cookies()
fw=open('baiducookie.txt','w')
json.dump(diccookie,fw)
fw.close()

从硬盘读取cookie,加入到request请求发送服务器。

import time
import json
 
启动chome浏览器并访问百度首页
option=webdriver.ChromeOptions()
option.add_argument('--start-maximized')
drive=webdriver.Chrome(options=option)
 
drive.get('http://www.baidu.com')
print(drive.title)
 
fr=open('baidu_cookie.txt','r')
cookielist=json.load(fr)
fr.close()
for cookie in cookielist:
  drive.add_cookie(cookie)
     
sleep(5)
drive.get('http://www.baidu.com')
drive.refresh()

通过cookie登录百度失败:

Message: unable to set cookie
Message: invalid argument: invalid 'expiry'

到此这篇关于python selenium操作cookie的实现的文章就介绍到这了,更多相关python selenium操作cookie内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python 的列表遍历删除实现代码
Apr 12 Python
批量将ppt转换为pdf的Python代码 只要27行!
Feb 26 Python
python求质数的3种方法
Sep 28 Python
彻彻底底地理解Python中的编码问题
Oct 15 Python
python感知机实现代码
Jan 18 Python
对python读取zip压缩文件里面的csv数据实例详解
Feb 08 Python
Python中字符串String的基本内置函数与过滤字符模块函数的基本用法
May 27 Python
Python流行ORM框架sqlalchemy安装与使用教程
Jun 04 Python
Python命名空间namespace及作用域原理解析
Jun 05 Python
Pycharm中配置远程Docker运行环境的教程图解
Jun 11 Python
Python logging自定义字段输出及打印颜色
Nov 30 Python
Python图片处理之图片裁剪教程
May 27 Python
Selenium 滚动页面至元素可见的方法
Mar 18 #Python
python字符串判断密码强弱
Mar 18 #Python
详解Python3中的 input() 函数
Mar 18 #Python
Python通过socketserver处理多个链接
Mar 18 #Python
python实现密码强度校验
Mar 18 #Python
Python tcp传输代码实例解析
Mar 18 #Python
python实现用户名密码校验
Mar 18 #Python
You might like
smarty模板引擎使用内建函数foreach循环取出所有数组值的方法
2015/01/22 PHP
详解PHP 7.4 中数组延展操作符语法知识点
2019/07/19 PHP
JavaScript 存在陷阱 删除某一区域所有节点
2010/05/10 Javascript
JS获取当前网址、主机地址项目根路径
2013/11/19 Javascript
Html5的placeholder属性(IE兼容)实现代码
2014/08/30 Javascript
javascript深拷贝的原理与实现方法分析
2017/04/10 Javascript
Angular2使用Augury来调试Angular2程序
2017/05/21 Javascript
vue中各组件之间传递数据的方法示例
2017/07/27 Javascript
基于 Vue 的树形选择组件的示例代码
2017/08/18 Javascript
vue移动UI框架滑动加载数据的方法
2018/03/12 Javascript
微信小程序签到功能
2018/10/31 Javascript
vue中的mvvm模式讲解
2019/01/31 Javascript
快速解决Vue、element-ui的resetFields()方法重置表单无效的问题
2020/08/12 Javascript
JavaScript位置参数实现原理及过程解析
2020/09/14 Javascript
Python中的对象,方法,类,实例,函数用法分析
2015/01/15 Python
python实现TCP服务器端与客户端的方法详解
2015/04/30 Python
搞笑的程序猿:看看你是哪种Python程序员
2015/06/12 Python
python 中random模块的常用方法总结
2017/07/08 Python
使用celery执行Django串行异步任务的方法步骤
2019/06/06 Python
python两个_多个字典合并相加的实例代码
2019/12/26 Python
python 实现单例模式的5种方法
2020/09/23 Python
HTML5 Canvas入门学习教程
2016/03/17 HTML / CSS
三星加拿大官方网上商店:Samsung CA
2020/12/18 全球购物
职专应届生求职信
2013/11/16 职场文书
开工庆典邀请函范文
2014/01/16 职场文书
岗位标兵事迹材料
2014/05/17 职场文书
大学生志愿者活动总结
2014/06/27 职场文书
关于旅游的活动方案
2014/08/15 职场文书
优秀团员事迹材料1500字
2014/08/31 职场文书
学校中秋节活动总结
2015/03/23 职场文书
2015年档案室工作总结
2015/05/23 职场文书
功夫熊猫观后感
2015/06/10 职场文书
创业计划书之服装
2019/10/07 职场文书
Nginx进程管理和重载原理详解
2021/04/22 Servers
Python实现单例模式的5种方法
2021/06/15 Python
MySQL开启事务的方式
2021/06/26 MySQL