python接口自动化-参数关联

前言

我们用自动化发帖之后,要想接着对这篇帖子操作,那就需要用参数关联了,发帖之后会有一个帖子的id,获取到这个id,继续操作传这个帖子id就可以了

(博客园的登录机制已经变了,不能用账号和密码登录了,换个网站,或者用cookie登录吧)

一、删除草稿箱

1.我们前面讲过登录后保存草稿箱,那可以继续接着操作:删除刚才保存的草稿

2.用fiddler抓包,抓到删除帖子的请求,从抓包结果可以看出,传的json参数是postId

3.这个postId哪里来的呢?可以看上个请求url地址

4.也就是说保存草稿箱成功之后,重定向一个url地址,里面带有postId这个参数。那接下来我们提取出来就可以了

二、提取参数

1.我们需要的参数postId是在保存成功后url地址,这时候从url地址提出对应的参数值就行了,先获取保存成功后url

2.通过正则提取需要的字符串,这个参数值前面(postid=)和后面(&)字符串都是固定的

3.这里正则提出来的是list类型,取第一个值就可以是字符串了(注意:每次保存需要修改内容,不能重复)

三,传参

1.删除草稿箱的json参数传上面取到的参数:{"postId": postid[0]}

2.json数据类型post里面填json就行,会自动转json

3.接着前面的保存草稿箱操作,就可以删除成功了

四、参考代码

(敲黑板!!!由于博客园的登录机制变了,后面所有的登录地方全部用cookie登录)

 # coding:utf-8
import requests# 先打开登录首页,获取部分cookie
url = "https://passport.cnblogs.com/user/signin"
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0"}  # get方法其它加个ser-Agent就可以了s = requests.session()
r = s.get(url, headers=headers,verify=False)
print s.cookies# 添加登录需要的两个cookie
c = requests.cookies.RequestsCookieJar()c.set('.CNBlogsCookie', '这里是抓到的')  # 填上面抓包内容
c.set('.Cnblogs.AspNetCore.Cookies','这里是抓到的')  # 填上面抓包内容
c.set('AlwaysCreateItemsAsActive',"True")
c.set('AdminCookieAlwaysExpandAdvanced',"True")
s.cookies.update(c)
print s.cookies# -----------登录全部走cookie登录---# 第二步:保存草稿
url2 = "https://i.cnblogs.com/EditPosts.aspx?opt=1"
body = {"__VIEWSTATE": "","__VIEWSTATEGENERATOR":"FE27D343","Editor$Edit$txbTitle":"这是3111","Editor$Edit$EditorBody":"<p>这里111:http://www.cnblogs.com/yoyoketang/</p>","Editor$Edit$Advanced$ckbPublished":"on","Editor$Edit$Advanced$chkDisplayHomePage":"on","Editor$Edit$Advanced$chkComments":"on","Editor$Edit$Advanced$chkMainSyndication":"on","Editor$Edit$Advanced$txbEntryName":"","Editor$Edit$Advanced$txbExcerpt":"","Editor$Edit$Advanced$tbEnryPassword":"","Editor$Edit$lkbDraft":"存为草稿",}r2 = s.post(url2, data=body, verify=False)
# 获取当前url地址
print r2.url# 第三步:正则提取需要的参数值
import re
postid = re.findall(r"postid=(.+?)&", r2.url)
print postid  # 这里是list
# 提取为字符串
print postid[0]# 第四步:删除草稿箱
url3 = "https://i.cnblogs.com/post/delete"
json3 = {"postId": postid[0]}
r3 = s.post(url3, json=json3, verify=False)
print r3.json()

Python接口自动化测试零基础入门到精通(2023最新版)

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

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

相关文章

【算法设计实验三】动态规划解决01背包问题

请勿原模原样复制&#xff01; 01背包dp具体解释详见链接 ↓ 【算法5.1】背包问题 - 01背包 &#xff08;至多最大价值、至少最小价值&#xff09;_背包问题求最小价值_Roye_ack的博客-CSDN博客 关于如何求出最优物品选择方案&#xff1f; 先在递归求dp公式时&#xff0c;若…

Proteus下仿真AT89C51单片机串行口的问题

在Proteus下仿真AT89C51单片机的串行口的时候&#xff0c;Proteu不同版本下差别较大。     同样的程序&#xff0c;在7.8的老版本&#xff08;7.8版本的原理图仿真软件名称是ISIS 7 Professional&#xff09;下仿真串行口&#xff0c;收发均正常。但是&#xff0c;在8.13版…

打印lua输出日志

日志级别&#xff1a; ngx.STDERR 标准输出ngx.EMERG 紧急报错ngx.ALERT 报警ngx.CRIT 严重&#xff0c;系统故障&#xff0c; 触发运维告警系统ngx.ERR 错误&#xff0c;业务不可恢复性错误ngx.WARN 提醒&#xff0c; 业务中可忽略错误ngx.NOTICE 提醒&#xff0c; 业务中比较…

增速大幅下滑?基础L2博弈成本

在高阶智驾&#xff08;从ALC到NOA&#xff09;的光环之下&#xff0c;传统入门级基础L2级辅助驾驶赛道也在发生一些微妙的变化。 高工智能汽车研究院监测数据显示&#xff0c;2023年1-9月&#xff0c;基础L2在中国市场&#xff08;不含进出口&#xff09;乘用车前装标配交付45…

数据库存储引擎

一、MySQL体系结构 二、存储引擎-简介 存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表的&#xff0c;而不是基于库的&#xff0c;所以存储引擎也可以被成为表的类型 MySQL 5.5版本之后&#xff0c;默认存储引擎就是InnoDB&#xff0c;之前…

十六进制字符串转成十进制数

需求 转码要求 案例 A2 转成 十进制数是 10 *16 2 162 代码 需要注意的是可能十六进制 里面有大小写&#xff0c;比如F 写成f&#xff0c; a 写成A&#xff0c;或者大小写混合&#xff0c;要提高鲁棒性就要两个都可行,算法很是简单&#xff0c;其实就是求取当前值x1&…

HarmonyOS云开发基础认证【最新题库 满分答案】

系列文章 HarmonyOS应用开发者基础认证【闯关习题 满分答案】 HarmonyOS应用开发者基础认证【满分答案】 HarmonyOS云开发基础认证【最新题库 满分答案】 目录 系列文章一、判断题二、单选题三、多选题 一、判断题 1.应用架构的演进依次经历了微服务架构、单体架构、Serverle…

Python数据结构——List

一、列表 1.1创建列表 &#xff08;1&#xff09;构造函数创建 dataListlist() &#xff08;2&#xff09;直接赋值 dataList[1,2,3,4,5] 1.2添加元素到列表 dataListlist() dataList.append(3) # > [3] 1.3删除元素 &#xff08;1&#xff09;删除第一个匹配的元素…

ArcGIS如何处理并加载Excel中坐标数据?

做GIS行业的各位肯定免不了跟数据打交道&#xff0c;其中数据的处理说复杂也复杂&#xff0c;因为我们要花时间去做数据的转换及调整工作&#xff0c;那说简单也简单&#xff0c;因为我们有很多的工具可以使用&#xff0c;那么今天我就给大家带来处理Excel中的GIS数据中的其中一…

导师散养,硕博士生如何进行学术自救?

https://mp.weixin.qq.com/s/PQkL6XKoQfysq_W9kmmiDA 在公众号上看到这篇文章&#xff0c;觉得挺有道理&#xff01; 经常在小红书看到很多学生吐槽导师散养的帖子&#xff0c;觉得蛮有趣的。 我整个的学术历程&#xff0c;可能也算是一种「散养」历程。如果说硕士是被动选择的…

图像处理02 matlab中NSCT的使用

06 matlab中NSCT的使用 最近在学习NSCT相关内容&#xff0c;奈何网上资源太少&#xff0c;简单看了些论文找了一些帖子才懂了一点点&#xff0c;在此分享给大家&#xff0c;希望有所帮助。 一.NSCT流程 首先我们先梳理一下NSCT变换的流程&#xff0c;只有清楚流程才更好的理清…

代码随想录算法训练营第23期day57|739. 每日温度、496.下一个更大元素

一、739. 每日温度 力扣题目链接​​​​​​ 1. 什么时候用单调栈? 通常是一维数组&#xff0c;要寻找任一个元素的右边或者左边第一个比自己大或者小的元素的位置&#xff0c;此时就要想到可以用单调栈。 单调栈的本质是空间换时间,更直白来说&#xff0c;就是用一个栈来…

Python不会调试不够丝滑?那事你不会logging---剖析!

前言: 一直都是手动debug进行调试,F8都按烂了;最近用logging进行提前布置,发现这样更能让代码走得丝滑,同时也能尽早发现问题! 基本概念&#xff1a; Logger - 日志记录接口 Handler - 确定日志记录发送到不同的地方&#xff08;文件、控制台等&#xff09; Level - 定义了日…

git 构建报错

钉钉插件]当前任务未配置机器人&#xff0c;已跳过 org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: WorkflowScript: 4: Tool type “maven” does not have an install of “maven-3.8.8” configured - did you mean “Maven-3.8.8”? …

高斯DWS数据库分页查询优化思路

除了高斯其它关系型数据可也一样可以使用 官方链接&#xff1a;EXPLAIN_数据仓库服务 GaussDB(DWS)_8.2.0_DML语法_华为云 参考链接&#xff1a;MySQL大数据量分页查询方法及其优化_mysql大数据量分页查询优化-CSDN博客 数据量过大&#xff0c;分页查询优化 背景&#xff1a;…

数据治理平台之数据采集细节

计算HDFS系统中分区文件的大小 利用递归对树形结构遍历 准备阶段 递归起点访问工具收集数据的容器 遍历阶段 中间节点&#xff1a;根据需要处理计算&#xff0c;收集数据&#xff0c;继续递归叶子节点&#xff1a;收集数据 写代码注意事项 不要反复连接数据库&#xff0c;…

类方法,静态方法和实例方法的区别及应用场景

在 Python 中&#xff0c;有三种不同类型的方法&#xff1a;实例方法、类方法和静态方法。它们各自有不同的特点和应用场景&#xff1a; 实例方法&#xff08;Instance Method&#xff09;&#xff1a; 实例方法是最常见的方法类型&#xff0c;在方法定义中第一个参数通常被命…

Linux 串口应用编程

1 串口 API Linux串口通信&#xff1a; 在 Linux 系统中&#xff0c;操作设备的统一接口就是&#xff1a; open/ioctl/read/write 。 对于 UART &#xff0c;又在 ioctl 之上封装了很多函数&#xff0c;主要是用来设置行规程。所以对于 UART &#xff0c;编程的套路就是…

flutter vscode gradle 配置

我这边主要改了如图两个文件&#xff0c;然后把Gradle的问题解决了 参考文章&#xff1a; flutter运行Runt imeException: Timeout of 120000问题-CSDN博客 flutter配置gradle&#xff08;个人笔记&#xff0c;非教程&#xff09;_flutter gradle_追寻着星星的方向的博客-CSD…

ATTCK实战系列——红队实战(一)

文章目录 网络拓扑环境搭建外网渗透信息收集端口扫描目录扫描 漏洞利用phpmyadmin拿shellgeneral_log_file写一句话蚁剑连接 网站后台拿shell关闭防火墙新建用户&#xff0c;开启3389 内网渗透&#xff08;一&#xff09;CSCS木马上线信息收集hashdumpMimikatz抓取明文密码 权限…