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内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 利用selenium 3.7和python3添加cookie模拟登陆的实现

    前言 随着Python3的普及,Selenium3也跟上了行程.而Selenium3最大的变化是去掉了Selenium RC,另外就是Webdriver从各自浏览器中脱离,必须单独下载.本文就来介绍了关于selenium 3.7+python3实现添加cookie模拟登陆的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 一.背景介绍 最近做一个爬虫项目,用selenium调用浏览器去获取渲染后的源码,但是每次登陆都需要手机验证,这真的是头痛啊,这种验证方式不要想着去破

  • Python Selenium Cookie 绕过验证码实现登录示例代码

    之前介绍过通过cookie 绕过验证码实现登录的方法.这里并不多余,会增加分析和另外一种方法实现登录. 1.思路介绍  1.1.直接看代码,内有详细注释说明 # FileName : Wm_Cookie_Login.py # Author : Adil # DateTime : 2018/3/20 19:47 # SoftWare : PyCharm from selenium import webdriver import time url = 'https://system.address'

  • Python3+selenium实现cookie免密登录的示例代码

    进过两天的研究终于实现了cookie的免密登录,其实就是session.特别开心,因为在Python爬虫群里问那些大佬,可是他们的回答令我寒心,自己琢磨!!! 靠谁比如靠自己,为此我总结下经验,以免入门的小白再次踩这样的吭.其实网上很多博客写的都比较不详细甚 首先问题自己思考,不懂得去群里问问,然后最重要的要理解事物的本质,只有理解后才能运用它:最后在百度一下把所有相关的博客都点开,一条一条的看一遍总结下规律,比较喽的就舍弃,这样基本上都能得到启发作用.比如selenium的本质就是操作浏览器的

  • python selenium操作cookie的实现

    由于HTTP协议是无状态协议,所以服务器与客户端通过http协议通讯时,服务器不能记录客户端的信息. 为了解决这个问题,通过 Cookie 和 Session 技术来实现. Cookie保存在客户端中 Session保存在服务器中 cookie的属性 一般cookie所具有的属性,包括: Domain:域,表示当前cookie所属于哪个域或子域下面. 对于服务器返回的Set-Cookie中,如果没有指定Domain的值,那么其Domain的值是默认为当前所提交的http的请求所对应的主域名的.比

  • Python Selenium操作Cookie的实例方法

    有了Selenium,还可以轻松操作Cookies,比如获取.添加.删除Cookies.具体代码如下: from selenium import webdriver browser = webdriver.Chrome() browser.get('https://www.zhihu.com' print(browser.get_cookies()) # browser.add_cookie({'aa':'aa','bb':'bb'}) # print(browser.get_cookies()

  • 教你怎么用Python selenium操作浏览器对象的基础API

    前言 相比于高大上的各种Selenium进阶指南,个人认为夯实基础至关重要. 在Selenium测试框架的API中,主要分为三大类: 1.对浏览器本身的相关操作. 2.对浏览器页面中,元素的定位操作. 3.对浏览器页面中元素进行定位后,对该元素的一些操作.如:点击.输入等操作. 我们本篇文章先说说Selenium框架对浏览器对象的基础操作. 一.导入Selenium库 # 导入Selenium驱动 from selenium import webdriver 二.创建浏览器对象 即:打开一个浏览

  • python+selenium操作下拉框

    以该网站为例:https://www.17sucai.com/pins/demo-show?id=5926 该网页下存在多个可供测试的下拉框. 基本脚手架代码: from selenium.webdriver.support.ui import Select from selenium import webdriver import time driver = webdriver.Chrome() driver.get('https://www.17sucai.com/pins/demo-sho

  • Python中Selenium对Cookie的操作方法

    1.Cookie介绍 HTTP协议是无状态的协议.一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接,这就意味着服务器无法从连接上跟踪会话.也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户.举个例子:用户A购买了一件商品放入购物车内,当再次购买商品时,服务器已经无法判断该购买行为是属于用户A的会话,还是用户B的会话了.要跟踪该会话,必须引入一种机制. 什么是一次会话: 用户打开浏览器访问某个网站, 在这个网站上浏览任意页面

  • Python+selenium实现趣头条的视频自动上传与发布

    目录 效果展示 效果展示 素材展示 实现过程 调用已启用的浏览器 上传视频和封面 完整源码展示  补充 Python+selenium操作已启用的chrome浏览器 Python+selenium实现自动导入.上传外部文件 效果展示 效果展示 素材展示 一个为视频,另一个为像素大小不小于视频的封面. 实现过程 调用已启用的浏览器 通过调用已启用的浏览器,可以实现直接跳过每次的登录过程. 使用方法可以参考补充内容 from selenium import webdriver options = w

  • Python+selenium实现浏览器基本操作详解

    目录 关闭 driver 启动的浏览器 浏览器最大化与设置浏览器窗口大小 浏览器最大化 设置浏览器窗口大小 浏览器的前进.后退与刷新页面 关闭 driver 启动的浏览器 上一章节文末,我们介绍了关于两种关闭浏览器的方式,这里不做过多的复述.(实在是这一章节的内容太少了) 在 selenium 中,提供了两种关闭 driver 启动的浏览器的方式: close() 方法:该方法可以关闭浏览器,但是它关闭的只是浏览器的窗口,由 driver 启动的浏览器的进程依然还在,会占用一定的资源. quit

  • Python使用cookielib模块操作cookie的实例教程

    cookielib是一个自动处理cookies的模块,如果我们在使用爬虫等技术的时候需要保存cookie,那么cookielib会让你事半功倍!他最常见的搭档模块就是python下的urllib和request. 核心类 1.Cookie 该类实现了Netscape and RFC 2965 cookies定义的cookie标准,基本可以理解为某一条cookie数据. 部分代码如下,很多属性是不是很眼熟? self.domain_initial_dot = domain_initial_dot

  • python+Selenium自动化测试——输入,点击操作

    这是我的第一个真正意思上的自动化脚本. 1.练习的测试用例为: 打开百度首页,搜索"胡歌",然后检索列表,有无"胡歌的新浪微博"这个链接 2.在写脚本之前,需要明确测试的步骤,具体到每个步骤需要做什么,既拆分测试场景,考虑好之后,再去写脚本. 此测试场景拆分如下: 1)启动Chrome浏览器 2)打开百度首页,https://www.baidu.com 3)定位搜索输入框,输入框元素XPath表达式://*[@id="kw"] 4)定位搜索提交按

  • Python selenium模拟手动操作实现无人值守刷积分功能

    经常为学校的各种刷分而发愁,得知开学无望,日后还要刷课,索性自动化一次,学而不用乃愚昧 聪慧 四大模块 初始化 from selenium import webdriver if __name__ == '__main__': driver = webdriver.Chrome() url = 'https://pc.xuexi.cn/points/login.html?ref=https://pc.xuexi.cn/points/my-points.html' driver.get(url =

随机推荐