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动态加载变量示例分享
Feb 17 Python
centos系统升级python 2.7.3
Jul 03 Python
python基础教程之匿名函数lambda
Jan 17 Python
分析python切片原理和方法
Dec 19 Python
python numpy 部分排序 寻找最大的前几个数的方法
Jun 27 Python
Python DataFrame.groupby()聚合函数,分组级运算
Sep 18 Python
pandas求两个表格不相交的集合方法
Dec 08 Python
python读写csv文件并增加行列的实例代码
Aug 01 Python
Python异常模块traceback用法实例分析
Oct 22 Python
解决Python中导入自己写的类,被划红线,但不影响执行的问题
Jul 13 Python
使用Python操作MySQL的小技巧
Sep 10 Python
python matplotlib绘制三维图的示例
Sep 24 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
laravel-admin的图片删除实例
2019/09/30 PHP
PHP多进程简单实例小结
2019/11/09 PHP
如何在Laravel5.8中正确地应用Repository设计模式
2019/11/26 PHP
jquery多选项卡效果实例代码(附效果图)
2013/03/23 Javascript
必备的JS调试技巧汇总
2016/07/20 Javascript
基于js中的原型、继承的一些想法
2016/08/10 Javascript
JavaScript设计模式之单体模式全面解析
2016/09/09 Javascript
jQuery 特性操作详解及实例代码
2016/09/29 Javascript
jQuery+CSS实现的标签页效果示例【测试可用】
2018/08/14 jQuery
jQuery 获取除某指定对象外的其他对象 ( :not() 与.not())
2018/10/10 jQuery
VueCli3构建TS项目的方法步骤
2018/11/07 Javascript
详解关于Angular4 ng-zorro使用过程中遇到的问题
2018/12/05 Javascript
微信小程序实现购物页面左右联动
2019/02/15 Javascript
Layui table field初始化加载时进行隐藏的方法
2019/09/19 Javascript
前端性能优化建议
2020/09/17 Javascript
python解析发往本机的数据包示例 (解析数据包)
2014/01/16 Python
python中正则的使用指南
2016/12/04 Python
在Django同1个页面中的多表单处理详解
2017/01/25 Python
解决python 输出是省略号的问题
2018/04/19 Python
Python 中的range(),以及列表切片方法
2018/07/02 Python
python爬虫 execjs安装配置及使用
2019/07/30 Python
使用Tensorflow将自己的数据分割成batch训练实例
2020/01/20 Python
python正则表达式re.match()匹配多个字符方法的实现
2021/01/27 Python
HTML5在手机端实现视频全屏展示方法
2020/11/23 HTML / CSS
意大利高端时尚买手店:Stefania Mode
2018/03/01 全球购物
墨西哥皇宫度假村预订:Palace Resorts
2018/06/16 全球购物
Anya Hindmarch官网:奢侈设计师手袋及配饰
2018/11/15 全球购物
庆七一活动方案
2014/01/25 职场文书
给老师的检讨书
2014/02/11 职场文书
2014年入党积极分子党校培训心得体会
2014/07/08 职场文书
2014年行政部工作总结
2014/11/19 职场文书
浅谈mysql返回Boolean类型的几种情况
2021/06/04 MySQL
SSM VUE Axios详解
2021/10/05 Vue.js
SpringBoot整合Redis入门之缓存数据的方法
2021/11/17 Redis
Python 居然可以在 Excel 中画画你知道吗
2022/02/15 Python
浅析python中特殊文件和特殊函数
2022/02/24 Python