python接口自动化接口依赖(python接口自动化十六--参数关联接口后传详解)
python接口自动化接口依赖
python接口自动化十六--参数关联接口后传详解简介
大家对前边的自动化新建任务之后,接着对这个新建任务操作了解之后,希望带小伙伴进一步巩固胜利的果实,夯实基础。因此再在沙场实例演练一下博客园的相关接口。我们用自动化发随笔之后,要想接着对这篇随笔操作,不用说就需
要用参数关联了,发随笔之后会有一个随笔的 id,获取到这个 id,继续操作传这个随笔 id 就可以了(博客园的登录机制已经变了,不能用账号和密码登录了,这里用 cookie 登录)
大致流程步骤:web界面操作登录抓包查看cookie—>代码模拟cookie登录—>web界面操作新建随笔和保存随笔—>抓包查看新建随笔和保存随笔的url和参数等—>代码模拟新建随笔并保存编辑内容—>web界面操作删除随笔—>抓取删除操作请求—>提取参数—>传参—>代码实现。
一、删除随笔
1、我们前面讲过登录后新建随笔和保存随笔后,不记得可以点击传送门那可以继续接着操作:删除刚才新建的随笔
2、用fiddler抓包,抓到删除新建随笔的请求,从抓包结果可以看出,传的json参数是postid
3.这个postid哪里来的呢?可以看上个请求的url地址
4、也就是说保存草稿箱成功之后,重定向一个 url 地址,里面带有 postid 这个参数。那我们想办法将这个参数提取出来就可以了
二、提取参数
1、我们需要的参数 postid 是在保存成功后 url 地址,这时候从 url 地址提出对应的参数值就行了,先获取保存成功后 url
2、通过正则表达式从保存的url提取需要的字符串,这个参数值前面(postid=)和后面(&)字符串都是固定的
3、这里正则提出来的是 list 类型,取第一个值就可以是字符串了(注意:每次保存需要修改内容,不能重复)
三、传参
1、删除草稿箱的 json 参数传上面取到的参数:{"postid": postid[0]}
2、json 数据类型 post 里面填 json 就行,会自动转 json
3、接着前面的保存随笔的操作,就可以删除成功了
注意:同理和jenkins一样,如果想看清楚,可以在删除新建随笔出打断点,看到新建的随笔后,再次执行下边的代码 看看是不是可以删掉新建随笔
四、参考代码
|
# 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' , 'xxx' ) # 填上面抓包内容 c. set ( '.cnblogs.aspnetcore.cookies' , 'xxx' ) # 填上面抓包内容 c. set ( 'alwayscreateitemsasactive' , "true" ) c. set ( 'admincookiealwaysexpandadvanced' , "true" ) s.cookies.update(c) print (s.cookies) # 登录成功后保存编辑内容 url2 = "https://i.cnblogs.com/editposts.aspx?opt=1" body = { "__viewstate" : "", "__viewstategenerator" : "fe27d343" , "editor$edit$txbtitle" : "这是绕过登录的标题:北京-宏哥" , "editor$edit$editorbody" : "<p>这里是中文内容:http://www.cnblogs.com/duhong/</p>" , "editor$edit$advanced$ckbpublished" : "on" , "editor$edit$advanced$chkdisplayhomepage" : "on" , "editor$edit$advanced$chkcomments" : "on" , "editor$edit$advanced$chkmainsyndication" : "on" , "editor$edit$lkbdraft" : "存为草稿" , } r2 = s.post(url2, data = body, verify = false) #print (r.content.decode('utf-8')) # 第三步:正则提取需要的参数值 import re postid = re.findall(r "postid=(.+?)&" , r2.url) print ( type (postid)) 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()) |
五、小结
1、好了,参数关联接口就是这么简单,相信各位小伙伴下回遇到此种类似的问题,不会慌了,应该是十拿九稳的把它ko掉。
2、有兴趣的自己可以向上一篇一样,自己练习一下打断点,自己可以体验一下其中的乐趣和神奇。
以上所述是小编给大家介绍的python接口自动化参数关联接口详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对开心学习网网站的支持!
原文链接:https://www.cnblogs.com/du-hong/p/10715555.html
- 怎么用python做随机矩阵(python实现杨氏矩阵查找)
- python time模块记录时间(Python Datetime模块和Calendar模块用法实例分析)
- python使用telnet(python 处理telnet返回的More,以及get想要的那个参数方法)
- 用python怎么找工作(利用python如何在前程无忧高效投递简历)
- python如何抓取公众号文章(python爬取微信公众号文章的方法)
- anaconda如何配置python3.7(WIn10+Anaconda环境下安装PyTorch避坑指南)
- python怎样读取txt文件的数据内容(Python实现读取txt文件中的数据并绘制出图形操作示例)
- python 摄像头运用(使用Python控制摄像头拍照并发邮件)
- python使用教程操作(详解python中@的用法)
- 基于pythonopencv的图片识别(Python Opencv实现图像轮廓识别功能)
- python编程加密解密(python实现AES加密解密)
- python中三种基本的数值类型(python基础知识一变量与简单数据类型详解)
- python爬取豆瓣电影评论(python使用requests模块实现爬取电影天堂最新电影信息)
- python怎么判断文件大小(python3实现指定目录下文件sha256及文件大小统计)
- python使用django搭建简单网页(Python后台开发Django的教程详解启动)
- python中字典的主要特点(Python里字典的基本用法包括嵌套字典)
- 不走心的古装造型 舒畅 毁容式 出演,萧蔷雷出新高度(不走心的古装造型)
- 嘉南传 第22集(嘉南传第22集)
- 哪版孙悟空最萌 黄渤躺萌了(哪版孙悟空最萌)
- 融入小人物的喜怒哀乐,黄渤饰演的角色为什么让人观看时欲罢不能(融入小人物的喜怒哀乐)
- 《极限挑战》深访都市夜归人,夜间打工者体验,黄磊录完憔悴了(极限挑战深访都市夜归人)
- Google 推出了一个游戏生成器,让不会编程的你也能自己设计游戏(推出了一个游戏生成器)
热门推荐
- 如何修改serv-u主页信息(Serv-U安装使用图文教程)
- django详情页面获取用户id(Django项目中添加ldap登陆认证功能的实现)
- python爬虫并保存excel实例(Python实现爬取亚马逊数据并打印出Excel文件操作示例)
- 如何使用html5的canvas图(html5 canvas实现给图片添加平铺水印)
- python标准库操作键盘(Python中捕获键盘的方式详解)
- tftp协议怎么用(tftp服务器有什么用)
- django session验证(Django框架验证码用法实例分析)
- laravel8 前后端分离方案(laravel 根据不同组织加载不同视图的实现)
- sqlserver列数据拆分(SQL Server基础之行数据转换为列数据)
- elementui多个组件怎么使用(ElementUI在实际项目使用步骤详解)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9