专用车网站建设,广州网站模块建设,无锡网站制作楚天软件,WordPress采集中文永久免费版下载python接口自动化#xff08;十三#xff09;--cookie绕过验证码登录#xff08;详解
简介 有些登录的接口会有验证码#xff1a;短信验证码#xff0c;图形验证码等#xff0c;这种登录的话验证码参数可以从后台获取的#xff08;或者查数据库最直接#xff09;。获取…python接口自动化十三--cookie绕过验证码登录详解
简介 有些登录的接口会有验证码短信验证码图形验证码等这种登录的话验证码参数可以从后台获取的或者查数据库最直接。获取不到也没关系可以通过添加cookie的方式绕过验证码。注意并不是所有的登录都是用cookie来保
持登录的有些是用token登录
抓登录cookie
1、如博客园登录后会生成一个已登录状态的cookie那么只需要直接把这个值添加到cookies里面就可以了。
2、可以先手动登录一次然后抓取这个cookie这里就需要用抓包工具fiddler了
3、先打开博客园登录界面手动输入账号和密码勾选下次自动登录 4、打开fiddler抓包工具刷新下登录首页就是登录前的cookie了 5、登录成功后再查看cookie变化发现多了两组参数多的这两组参数就是我们想要的copy出来一会有用 cookie组成结构
1、用抓包工具fidller只能看到cookie的name和value两个参数实际上cookie还有其它参数
2、以下是一个完整的cookie组成结构 1 2 3 4 5 6 7 cookie {udomain: u.cnblogs.com, uname: u.CNBlogsCookie, uvalue: uxxxx, uexpiry: 1491887887, upath: u/, uhttpOnly: True, usecure: False}
namecookie的名称
valuecookie对应的值动态生成的
domain服务器域名
expiryCookie有效终止日期
pathPath属性定义了Web服务器上哪些路径下的页面可获取服务器设置的Cookie
httpOnly防脚本攻击
secure:在Cookie中标记该变量表明只有当浏览器和Web Server之间的通信协议为加密认证协议时
浏览器才向服务器提交相应的Cookie。当前这种协议只有一种即为HTTPS。
添加cookie
1、往session里面添加cookie可以用以下方式
2、set里面参数按括号里面的参数格式 1 2 3 coo requests.cookies.RequestsCookieJar() coo.set(cookie-name, cookie-value, path/, domain.xxx.com) s.cookies.update(c)
3、于是添加登录的cookie把第一步fiddler抓到的内容填进去就可以了 1 2 3 4 5 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-82 import requests3 # 先打开登录首页获取部分cookie4 url https://passport.cnblogs.com/user/signin5 headers {6 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.07 } # get方法其它加个ser-Agent就可以了8 s requests.session()9 r s.get(url, headersheaders,verifyFalse)
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?opt1
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, databody, verifyFalse)
30 print r.content 总结 现阶段很多人都在说软件测试太内卷了工作太难找了竞争太激烈了。那么如何在这样的现状下使得自己更具有竞争力呢笔者认为大家需要迅速学习软件测试的硬技能提升自己的业务能力早日摆脱初中级测试的Title虽然测试人员众多但是高级的软件测试人员还是很稀缺有很多人挂着高级测试的头衔却还在干着初中级测试的活。在掌握这些硬技能的同时软技能的培养同样重要沟通能力、自主学习能力越来越被企业看重。
如果不想被这个时代淘汰就要做好持续学习的准备。下方给大家准备了全套的软件测试自动化测试全套教程。
【需要的可以点击下方官方推广小卡片扫码备注000免费领取】