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基于Tkinter实现的记事本实例
Jun 17 Python
解决Python传递中文参数的问题
Aug 04 Python
Python黑魔法@property装饰器的使用技巧解析
Jun 16 Python
python抓取文件夹的所有文件
Feb 27 Python
jupyter notebook引用from pyecharts.charts import Bar运行报错
Apr 23 Python
完美解决安装完tensorflow后pip无法使用的问题
Jun 11 Python
用xpath获取指定标签下的所有text的实例
Jan 02 Python
python算法题 链表反转详解
Jul 02 Python
tensorflow 实现从checkpoint中获取graph信息
Feb 10 Python
python实现程序重启和系统重启方式
Apr 16 Python
python 列表推导和生成器表达式的使用
Feb 01 Python
如何在pycharm中快捷安装pip命令(如pygame)
May 31 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
php的$_FILES的临时储存文件与回收机制实测过程
2013/07/12 PHP
学习PHP Cookie处理函数
2016/08/09 PHP
PHP中用mysqli面向对象打开连接关闭mysql数据库的方法
2016/11/05 PHP
PHP正则表达式匹配替换与分割功能实例浅析
2017/02/04 PHP
最好用的省市二级联动 原生js实现你值得拥有
2013/09/22 Javascript
jqplot通过ajax动态画折线图的方法及思路
2013/12/08 Javascript
jQuery响应enter键的实现思路
2014/04/18 Javascript
使用js dom和jquery分别实现简单增删改
2014/09/11 Javascript
TypeOf这些知识点你了解吗
2016/02/21 Javascript
jquery ajax双击div可直接修改div中的内容
2016/03/04 Javascript
利用JQuery写一个简单的异步分页插件
2016/03/07 Javascript
JS操作COOKIE实现备忘记录的方法
2016/04/01 Javascript
JSONP跨域请求实例详解
2016/07/04 Javascript
Vue.js实现的计算器功能完整示例
2018/07/11 Javascript
开发中常用的25个JavaScript单行代码(小结)
2019/06/28 Javascript
利用不到200行代码写一款属于你自己的js类库
2019/07/08 Javascript
js实现图片上传即时显示效果
2019/09/30 Javascript
Python的Django框架使用入门指引
2015/04/15 Python
python交换两个变量的值方法
2019/01/12 Python
关于Python turtle库使用时坐标的确定方法
2020/03/19 Python
基于python调用jenkins-cli实现快速发布
2020/08/14 Python
Python存储读取HDF5文件代码解析
2020/11/25 Python
图库照片、免版税图片、矢量艺术、视频片段:Depositphotos
2019/08/02 全球购物
俄罗斯三星品牌商店:GalaxyStore
2020/11/04 全球购物
英国鲜花递送:Blossoming Gifts
2020/07/10 全球购物
掌上明珠Java程序员面试总结
2016/02/23 面试题
物业管理应届生求职信
2013/10/28 职场文书
公务员转正鉴定材料
2014/02/11 职场文书
家长写给老师的建议书
2014/03/13 职场文书
生日礼品店创业计划书范文
2014/03/21 职场文书
促销活动总结
2014/04/28 职场文书
班级体育活动总结
2014/07/05 职场文书
党支部党的群众路线对照检查材料
2014/09/24 职场文书
实习单位鉴定意见
2015/06/04 职场文书
篮球赛新闻稿
2015/07/17 职场文书
村党总支部公开承诺书2016
2016/03/25 职场文书