python接口自动化(十三)--cookie绕过验证码登录(详解)

news2024/10/6 14:28:39

简介

  有些登录的接口会有验证码:短信验证码,图形验证码等,这种登录的话验证码参数可以从后台获取的(或者查数据库最直接)。获取不到也没关系,可以通过添加cookie的方式绕过验证码。(注意:并不是所有的登录都是用cookie来保

持登录的,有些是用token登录)

抓登录cookie

1、如博客园登录后会生成一个已登录状态的cookie,那么只需要直接把这个值添加到cookies里面就可以了。

2、可以先手动登录一次,然后抓取这个cookie,这里就需要用抓包工具fiddler了

3、先打开博客园登录界面,手动输入账号和密码(勾选下次自动登录)

如果你想学习接口自动化测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的接口自动化测试教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:798478386     

【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)_哔哩哔哩_bilibili【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)共计200条视频,包括:1.【接口自动化】目前软件测试的市场行情以及测试人员能力标准。、2.【接口自动化】全面熟练Requests库以及底层方法调用逻辑、3.【接口自动化】接口自动化实战及正则和JsonPath提取器的应用等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from=333.337 

4、打开fiddler抓包工具,刷新下登录首页,就是登录前的cookie了

5、登录成功后,再查看cookie变化,发现多了两组参数,多的这两组参数就是我们想要的,copy出来,一会有用

cookie组成结构

1、用抓包工具fidller只能看到cookie的name和value两个参数,实际上cookie还有其它参数

2、以下是一个完整的cookie组成结构

cookie ={u'domain': u'.cnblogs.com',
            u'name': u'.CNBlogsCookie',
            u'value': u'xxxx',
            u'expiry': 1491887887,
            u'path': u'/',
            u'httpOnly': True,
            u'secure': False}

name:cookie的名称

value:cookie对应的值,动态生成的

domain:服务器域名

expiry:Cookie有效终止日期

path:Path属性定义了Web服务器上哪些路径下的页面可获取服务器设置的Cookie

httpOnly:防脚本攻击 

secure:在Cookie中标记该变量,表明只有当浏览器和Web Server之间的通信协议为加密认证协议时,

浏览器才向服务器提交相应的Cookie。当前这种协议只有一种,即为HTTPS。

添加cookie

1、往session里面添加cookie可以用以下方式

2、set里面参数按括号里面的参数格式

coo = requests.cookies.RequestsCookieJar() 
coo.set('cookie-name', 'cookie-value', path='/', domain='.xxx.com') 
s.cookies.update(c)

3、于是添加登录的cookie,把第一步fiddler抓到的内容填进去就可以了

c = requests.cookies.RequestsCookieJar()
c.set('.CNBlogsCookie', 'xxx')
c.set('.Cnblogs.AspNetCore.Cookies','xxx')
s.cookies.update(c)
print(s.cookies)

代码运行,刷新随笔

1、看到刚刚添加的随笔

参考代码

1、由于登录时候是多加2个cookie,我们可以先用get方法打开登录首页,获取部分cookie

2、再把登录需要的cookie添加到session里

3、添加成功后,随便编辑正文和标题保存到草稿箱

 1 # coding:utf-8
 2 import requests
 3 # 先打开登录首页,获取部分cookie
 4 url = "https://passport.cnblogs.com/user/signin"
 5 headers = {
 6             "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0"
 7            }  # get方法其它加个ser-Agent就可以了
 8 s = requests.session()
 9 r = s.get(url, headers=headers,verify=False)
10 print s.cookies
11 # 添加登录需要的两个cookie
12 c = requests.cookies.RequestsCookieJar()
13 c.set('.CNBlogsCookie', 'xxx')  # 填上面抓包内容
14 c.set('.Cnblogs.AspNetCore.Cookies','xxx')  # 填上面抓包内容
15 s.cookies.update(c)
16 print s.cookies
17 # 登录成功后保存编辑内容
18 url2= "https://i.cnblogs.com/EditPosts.aspx?opt=1"
19 body = {"__VIEWSTATE": "",
20         "__VIEWSTATEGENERATOR":"FE27D343",
21         "Editor$Edit$txbTitle":"这是绕过登录的标题:北京-宏哥",
22         "Editor$Edit$EditorBody":"<p>这里是中文内容:http://www.cnblogs.com/duhong/</p>",
23         "Editor$Edit$Advanced$ckbPublished":"on",
24         "Editor$Edit$Advanced$chkDisplayHomePage":"on",
25         "Editor$Edit$Advanced$chkComments":"on",
26         "Editor$Edit$Advanced$chkMainSyndication":"on",
27         "Editor$Edit$lkbDraft":"存为草稿",
28          }
29 r2 = s.post(url2, data=body, verify=False)
30 print r.content

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/716581.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GPT模型训练实践(1)-基础概念

GPT 是 Generative Pre-trained Transformers 的缩写&#xff0c;一种先进的深度学习模型&#xff0c;旨在生成类人文本。GPT 的三个组成部分Generative、Pre-trained 和 Transformer&#xff0c;其解释如下&#xff1a; Generative生成&#xff1a;生成模型是用于生成新数据的…

【DASOU视频记录】Transformer从零详细解读

文章目录 来源transformer的全局理解位置编码多头注意力机制残差Batch NormalLayer NormalDecoder 来源 b站链接 transformer的全局理解 输入中文&#xff0c;输出英文 细化容易理解的结构&#xff0c;就是先编码&#xff0c;再解码 进一步细化的结构&#xff0c;就是多个编…

Python_闭包

目录 1.概念介绍 2.闭包初探 3.闭包陷阱 4.闭包的应用 4.1 潜在的问题 5.闭包的实现 闭包并不只是一个python中的概念&#xff0c;在函数式编程语言中应用较为广泛。理解python中的闭包一方面是能够正确的使用闭包&#xff0c;另一方面可以好好体会和思考闭包的设计思想。…

面试又问到:工作中发现的最有价值的bug?答不好offer要飞了...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 这个问题&#xf…

SpringBoot--超时熔断器

需求背景 如果一个服务中有很多涉及需要服务间熔断的地方&#xff0c;就会出现N多下述代码&#xff1a; 1.N个fegnClient接口 FeignClient(name "hello-world-service", fallback HelloWorldFallback.class) public interface HelloWorldService {GetMapping(&q…

gma 2 教程(一)概述:3. 探索 GMA

组织方式 gma 整体按照库-模块-类/函数-&#xff08;方法/属性/子类&#xff09;的思路构建&#xff0c;详细思路如下所示&#xff1a; 整体架构 gma内主要模块与功能对应关系见下表&#xff1a; 模块名中文名对应主要功能io输入输出栅格/矢量数据输入输出模块crs坐标系统坐…

vim的使用方法及相关按键

目录 一、安装vim 二、vim的使用 1.打开vim 2.vim的四种模式使用 &#xff08;1&#xff09;命令模式&#xff08;快捷键的使用&#xff09; &#xff08;2&#xff09;编辑模式 &#xff08;3&#xff09;末行模式 &#xff08;4&#xff09;可视化模式 一、安装vim …

022:vue中tree结构数据变成扁平化table结构数据的示例

第022个 查看专栏目录: VUE — element UI vue在使用element UI tree的时候,有的时候是要做逆向处理的,即将树形结构的数据转化为table结构的数据,即扁平化的json数据。 如何处理呢? 效果图 原始tree结构数据: let newdata= [ {

redis pipeline

redis 执行多条连续的命令的时候为了减少网络开销RTT&#xff0c;可以使用pipeline技术。 pipeline 与 原生批命令(mset, mget) 对比&#xff1a; 原生批命令是原子性&#xff0c;pipeline是非原子性 (原子性概念:一个事务是一个不可分割的最小工作单位,要么都成功要么都失败…

基于Anime2Sketch算法那将图片转成素描

1.下载源码地址 https://github.com/Mukosame/Anime2Sketch下载项目依赖包&#xff0c;下载模型权重文件 运行看效果 python test.py --datarootE:\01_hjz\datas\00-hjz\pictures --load_size512调整自定义测试图片路径 """Test script for anime-to-sketch…

基于Java+Vue前后端分离网上书城系统设计实现(源码+lw+部署文档+讲解等)

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

ChatGPT+低代码,好用到飞起?

ChatGPT 凭借短短 2 个月&#xff0c;月活用户突破 1 亿&#xff0c;成为史上用户增长速度最快的消费级应用程序。ChatGPT 的爆火&#xff0c;在全球范围内掀起了一场关于 AI 技术革命的狂潮&#xff0c;AIGC 也迅速成为科技圈最火赛道。 更有国际咨询机构预测&#xff0c;203…

IIS安装配置和简单网站部署流程

IIS安装和网站配置 环境&#xff1a;win10 注意&#xff1a;这是在win10下部署iis&#xff0c;开发环境下部署&#xff0c;开发测试&#xff0c;非windows server IIS简介 Internet Information Services,简称IIS&#xff0c;是微软提供基于windows的互联网信息服务&#x…

微信小程序使用第三方组件wxParse加载富文本html

微信小程序使用第三方组件wxParse加载富文本html 微信小程序微信小程序加载富文本html微信小程序富文本第三方组件wxParsewxParse富文本html wxParse简介 wxParse 是一个微信小程序富文本解析组件&#xff0c;支持支持Html及markdown转wxml。 wxParse gitHub地址&#xff1…

亿发软件:玩具制造行业批发ERP系统解决方案,赋能传统制造商数字化

我国长期以来被公认为玩具制造大国&#xff0c;受益于其制造基础设施和成本优势。此外&#xff0c;可支配收入的增加和用户生活方式的改变增加了国内外对玩具的需求。然而&#xff0c;行业也面临着挑战和转型。随着数字技术的出现和用户偏好的变化&#xff0c;玩具ERP系统在确保…

TCP三次握手和自连接的条件和缺点

详解三次握手 为什么 SYN 段不携带数据却要消耗一个序列号呢&#xff1f; 记住&#xff1a; • 不占用序列号的段是不需要确认的&#xff0c;比如纯 ACK 包 • SYN 段需要对方的确认&#xff0c;需要占用一个序列号 • 凡是消耗序列号的 TCP 报文段&#xff0c;一定需要对端确认…

旅游宣传软文怎么写吸引人?纯干货

世界那么大&#xff0c;我想去看看&#xff0c;旅游是一种非常放松解压的方式&#xff0c;在旅行中放飞自我&#xff0c;在旅行中寻找自我&#xff0c;一个景点的客流量很大程度取决于其宣传效果&#xff0c;旅游宣传软文就是一种通过文字来吸引人们前往旅游目的地的宣传手段。…

嵌入式系统中详解 Modbus 通信协议(清晰易懂)

本文总结关于 Modbus 相关的知识&#xff0c;浅显易懂&#xff0c;旨在对 Modbus 有一个很直观的了解。如有错误&#xff0c;欢迎修改意见和建议。 什么是协议 在了解什么是Modbus之前&#xff0c;我们先来看下什么是协议。 协议是一个汉语词汇&#xff0c;读音为xi y&#…

Nftables栈溢出漏洞(CVE-2022-1015)复现

背景介绍 Nftables Nftables 是一个基于内核的包过滤框架&#xff0c;用于 Linux 操作系统中的网络安全和防火墙功能。nftables 的设计目标是提供一种更简单、更灵活和更高效的方式来管理网络数据包的流量。 钩子点&#xff08;Hook Point&#xff09; 钩子点的作用是拦截数…

Linux环境下配置安装RocketMQ

1.下载 官网下载&#xff1a;下载链接 根据需要下载自己需要的版本、本文使用下载的是:4.7.0版本 2.安装 创建目录&#xff0c;使用ftp工具上传下载的包到上面创建的目录下。 cd /usr/local mkdir rocketmq-all-4.7.0注意&#xff1a;rocketmq 需要 Linux 上安装JDK&…