首页 新闻 会员 周边

在python接口自动化测试中,如何用cookies绕过验证码

0
悬赏园豆:40 [已解决问题] 解决于 2022-02-24 15:12

才开始学习接口自动化。卡在第一步了,对于一个登录的post接口,有账号、密码、验证码三项。我该如何用cookies进行登录绕过验证,后台去掉验证不现实,没有权限。

抓包抓到的信息,是在登录页面输入账号、密码、验证码发出请求后,会重定向到另一个get接口,登录成功,然后得到返回的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 r.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

我在输入这一段时,没有找到requests.cookies.RequestsCookieJar()这种方法,因为文档是17年的,也找不到响应的资料,是否已经更换了语法。

如果确实更换了语法,我能用这种方法绕过验证码吗;还是要再加重定向获取和传参,重定向后将除验证码外的data传到get里,再加入cookie去绕过登录

实在弄不清楚,望解答

巴巴一个蓝的主页 巴巴一个蓝 | 初学一级 | 园豆:168
提问于:2021-12-22 17:28
< >
分享
最佳答案
0

打开浏览器的开发者工具,正常操作一遍,然后看看cookie是什么内容,在你的请求中加入这些cookie。你用的是python代码吧。类似这样:

import requests

cookies = {'enwiki_session': '17ab96bd8ffbe8ca58a78657a918558'}

r = requests.post('http://wikipedia.org', cookies=cookies)
收获园豆:40
wang_yb | 老鸟四级 |园豆:4891 | 2021-12-22 22:54

试了一下确实可行,现在接口自动化的学习卡住了,很苦恼

巴巴一个蓝 | 园豆:168 (初学一级) | 2022-02-24 15:12

@巴巴一个蓝: 测试接口一般不考虑cookie这些的吧,你是做的页面的自动化吧

wang_yb | 园豆:4891 (老鸟四级) | 2022-02-24 17:22

@wang_yb: 做的接口的,页面自动的公司不太好开展

巴巴一个蓝 | 园豆:168 (初学一级) | 2022-02-25 11:00
其他回答(1)
0

固定账号下发固定验证码

花雨落满楼 | 园豆:202 (菜鸟二级) | 2021-12-22 18:03
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册