python selenium操作cookie的实现

 更新时间:2020年03月18日 14:43:33   作者:隐泉  
这篇文章主要介绍了python selenium操作cookie的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

由于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 set()去重的底层原理及实例

    python set()去重的底层原理及实例

    python中集合set是一个无序不重复元素的集,基本功能包括关系测试和消除重复元素,还可以计算交集、差集、并集等,它与列表(list)的行为类似,这篇文章主要介绍了python set()去重的底层原理,需要的朋友可以参考下
    2022-01-01
  • Python实现文件操作帮助类的示例代码

    Python实现文件操作帮助类的示例代码

    在使用Python进行业务开发的时候,需要将一些数据保存到本地文件存储,方便后面进行数据分析展示,本文就来用Python制作一个文件操作帮助类,需要的可以参考一下
    2023-03-03
  • 运动检测ViBe算法python实现代码

    运动检测ViBe算法python实现代码

    这篇文章主要为大家详细介绍了运动检测ViBe算法python实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • Python中Playwright模块进行自动化测试的实现

    Python中Playwright模块进行自动化测试的实现

    playwright是由微软开发的Web UI自动化测试工具,本文主要介绍了Python中Playwright模块进行自动化测试的实现,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • PyTorch 之 强大的 hub 模块和搭建神经网络进行气温预测

    PyTorch 之 强大的 hub 模块和搭建神经网络进行气温预测

    hub 模块是调用别人训练好的网络架构以及训练好的权重参数,使得自己的一行代码就可以解决问题,方便大家进行调用,这篇文章主要介绍了PyTorch 之 强大的 hub 模块和搭建神经网络进行气温预测,需要的朋友可以参考下
    2023-03-03
  • Python 调用 Windows API COM 新法

    Python 调用 Windows API COM 新法

    Python中调用Win32API 通常都是使用 PyWin32或者ctypes。本文给大家介绍Python 调用 Windows API COM 新法,感兴趣的朋友跟随小编一起看看吧
    2019-08-08
  • Python操作MySQL数据库9个实用实例

    Python操作MySQL数据库9个实用实例

    这篇文章主要介绍了Python操作MySQL数据库9个实用实例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • 对sklearn的使用之数据集的拆分与训练详解(python3.6)

    对sklearn的使用之数据集的拆分与训练详解(python3.6)

    今天小编就为大家分享一篇对sklearn的使用之数据集的拆分与训练详解(python3.6),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • numpy数组之存取文件的实现示例

    numpy数组之存取文件的实现示例

    这篇文章主要介绍了numpy数组之存取文件的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • 教你使用Pandas直接核算Excel中的快递费用

    教你使用Pandas直接核算Excel中的快递费用

    文中仔细说明了怎么根据账单核算运费.首先要确定运费规则,然后根据运费规则编写代码,生成核算列(快递费 = 省份*重量),最后输入账单,进行核算.将脚本件生成EXE文件,就可以使用啦,需要的朋友可以参考下
    2021-05-05

最新评论