Python接口自动化(五) cookie绕过验证码登录

摘要:
Headers=Headers)print(s.cookies)#添加登录cc=请求所需的两个cookies。饼干。RequestsCookieJar()cc.set(“.Cnblogs.AspNetCore.Cookies”,

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

抓登录cookie

如博客园,未登录时,使用fiddler抓包查看cookie值。登录后,使用fiddler抓包查看cookie值。查看cookie变化,发现多个两组参数。

Python接口自动化(五) cookie绕过验证码登录第1张

Python接口自动化(五) cookie绕过验证码登录第2张

#coding:utf-8
import requests
url="https://i-beta.cnblogs.com/posts?cateId=1588084"
headers={
    "User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36"
}
s=requests.session()
rs=s.get(url,headers=headers)
print(s.cookies)
#添加登录需要的两个cookie
cc=requests.cookies.RequestsCookieJar()
cc.set(".Cnblogs.AspNetCore.Cookies","CfDJ8K5MrGQfPjpFvRyctF-QEQcDzRZK5jUWvO_zH9KKA18eyWMeso1aSYMQUHEiM2gC0Kz5qLHMI50QKTkk6PxEVMIFUL0bIXSEGk-ctediSLIDYY3srFUeFns3rMJHJAXu4tUBpcbqyckZ2pAnZk5p8afXl1rmRi9oMmo8RzQ2JqUX5EX9hC8ux6OY2c9X9TU57cxrmCmisUWB06YZ-PPallxFyWZ97lKJMhreV1Ox-TpDaxAtjm_wJckCl-iaLtvJkuluk4esC5Z6O9kgyThVnKXWSil0BrPXGnCEQvj9DJrfpMKJWeRu0wUgEaDmKkBX2RCecc8g46hNbzUcIApyHtCR7FpfOk7Q6vWAmJCZbpOuwA0fk62Ls7a9nFqo0o1rO-MZZW40NKw6SJ738f0vm3bjoVP6MON4rYOFeyGO1SijlFlNQVEYSaI6q8CqIpzREHXbDc2OMiMZRJ-A_yAImMaISh-qf3petNru8zEHv0hyVqDdjPdfw4uBUOdV45YggBAo6GHzwhKjsFogldEMvvS26RfqXXOalkmdBIIFK09MNRqRIZfkLjg6xhDTAoWerA")
cc.set(".CNBlogsCookie","D3B13B6DC882FB671B0397F7E14D4B5C9C45C423C7894D19CBF8AD34723424420B0FBD6CEEFE2A6C109D33FBE1A420A59E99BA70CD42E056D576AFDCF8E1EDFDE9ACC6BA831A3C968836189F4B20E293F6244BD0")
s.cookies.update(cc)
print(s.cookies)
#查看需要登录才可以查看的列表
result=s.get("https://i-beta.cnblogs.com/api/posts/list?p=1&cid=1588084&tid=&t=1&cfg=0",headers=headers)
print(result.json())  

运行结果

C:UsersAdministratorAppDataLocalProgramsPythonPython37python.exe D:/Python0811/0919.py
<RequestsCookieJar[]>
<RequestsCookieJar[<Cookie .CNBlogsCookie=D3B13B6DC882FB671B0397F7E14D4B5C9C45C423C7894D19CBF8AD34723424420B0FBD6CEEFE2A6C109D33FBE1A420A59E99BA70CD42E056D576AFDCF8E1EDFDE9ACC6BA831A3C968836189F4B20E293F6244BD0 for />, <Cookie .Cnblogs.AspNetCore.Cookies=CfDJ8K5MrGQfPjpFvRyctF-QEQcDzRZK5jUWvO_zH9KKA18eyWMeso1aSYMQUHEiM2gC0Kz5qLHMI50QKTkk6PxEVMIFUL0bIXSEGk-ctediSLIDYY3srFUeFns3rMJHJAXu4tUBpcbqyckZ2pAnZk5p8afXl1rmRi9oMmo8RzQ2JqUX5EX9hC8ux6OY2c9X9TU57cxrmCmisUWB06YZ-PPallxFyWZ97lKJMhreV1Ox-TpDaxAtjm_wJckCl-iaLtvJkuluk4esC5Z6O9kgyThVnKXWSil0BrPXGnCEQvj9DJrfpMKJWeRu0wUgEaDmKkBX2RCecc8g46hNbzUcIApyHtCR7FpfOk7Q6vWAmJCZbpOuwA0fk62Ls7a9nFqo0o1rO-MZZW40NKw6SJ738f0vm3bjoVP6MON4rYOFeyGO1SijlFlNQVEYSaI6q8CqIpzREHXbDc2OMiMZRJ-A_yAImMaISh-qf3petNru8zEHv0hyVqDdjPdfw4uBUOdV45YggBAo6GHzwhKjsFogldEMvvS26RfqXXOalkmdBIIFK09MNRqRIZfkLjg6xhDTAoWerA for />]>
{'postList': [{'id': 13380505, 'title': 'Python接口自动化(四) https请求(SSLError解决办法)', 'url': '//www.cnblogs.com/canglongdao/p/13380505.html', 'isPublished': True, 'feedBackCount': 0, 'webCount': 4, 'aggCount': 0, 'viewCount': 4, 'datePublished': '2020-07-26T15:15:00', 'entryName': None, 'postType': 1, 'postConfig': 93, 'dateUpdated': '2020-07-26T15:15:00'}, {'id': 13380298, 'title': 'Python接口自动化(三)post请求四种传送正文方式', 'url': '//www.cnblogs.com/canglongdao/p/13380298.html', 'isPublished': True, 'feedBackCount': 0, 'webCount': 3, 'aggCount': 0, 'viewCount': 3, 'datePublished': '2020-07-26T14:13:00', 'entryName': None, 'postType': 1, 'postConfig': 93, 'dateUpdated': '2020-07-26T14:13:00'}, {'id': 13379676, 'title': 'Python接口自动化(二) 发送post请求的接口;发送post【data】;python中字典和json的区别', 'url': '//www.cnblogs.com/canglongdao/p/13379676.html', 'isPublished': True, 'feedBackCount': 0, 'webCount': 3, 'aggCount': 0, 'viewCount': 3, 'datePublished': '2020-07-26T11:13:00', 'entryName': None, 'postType': 1, 'postConfig': 93, 'dateUpdated': '2020-07-26T14:37:00'}, {'id': 13378194, 'title': 'requests高级用法', 'url': '//www.cnblogs.com/canglongdao/p/13378194.html', 'isPublished': True, 'feedBackCount': 0, 'webCount': 5, 'aggCount': 0, 'viewCount': 5, 'datePublished': '2020-07-25T20:48:00', 'entryName': None, 'postType': 1, 'postConfig': 93, 'dateUpdated': '2020-07-25T20:48:00'}, {'id': 13363702, 'title': '安装requests,requests基本使用', 'url': '//www.cnblogs.com/canglongdao/p/13363702.html', 'isPublished': True, 'feedBackCount': 0, 'webCount': 8, 'aggCount': 0, 'viewCount': 8, 'datePublished': '2020-07-23T22:45:00', 'entryName': None, 'postType': 1, 'postConfig': 93, 'dateUpdated': '2020-07-25T08:43:00'}, {'id': 11838333, 'title': 'python接口自动化(一)  发送get请求; 状态码对照表;', 'url': '//www.cnblogs.com/canglongdao/p/11838333.html', 'isPublished': True, 'feedBackCount': 0, 'webCount': 90, 'aggCount': 0, 'viewCount': 90, 'datePublished': '2020-01-07T21:57:00', 'entryName': None, 'postType': 1, 'postConfig': 93, 'dateUpdated': '2020-07-26T10:10:00'}, {'id': 12158718, 'title': 'python发送.xml格式的post请求;', 'url': '//www.cnblogs.com/canglongdao/p/12158718.html', 'isPublished': True, 'feedBackCount': 0, 'webCount': 372, 'aggCount': 0, 'viewCount': 372, 'datePublished': '2020-01-06T21:53:00', 'entryName': None, 'postType': 1, 'postConfig': 93, 'dateUpdated': '2020-01-06T21:53:00'}, {'id': 12152290, 'title': 'python logging', 'url': '//www.cnblogs.com/canglongdao/p/12152290.html', 'isPublished': True, 'feedBackCount': 0, 'webCount': 27, 'aggCount': 0, 'viewCount': 27, 'datePublished': '2020-01-05T14:06:00', 'entryName': None, 'postType': 1, 'postConfig': 93, 'dateUpdated': '2020-01-05T21:31:00'}, {'id': 12019740, 'title': '封装,调用函数,以及参数化', 'url': '//www.cnblogs.com/canglongdao/p/12019740.html', 'isPublished': True, 'feedBackCount': 0, 'webCount': 110, 'aggCount': 0, 'viewCount': 110, 'datePublished': '2019-12-10T22:55:00', 'entryName': None, 'postType': 1, 'postConfig': 93, 'dateUpdated': '2019-12-10T22:55:00'}, {'id': 12013291, 'title': '非ssl给163发邮件,报错,无解ing', 'url': '//www.cnblogs.com/canglongdao/p/12013291.html', 'isPublished': True, 'feedBackCount': 1, 'webCount': 48, 'aggCount': 0, 'viewCount': 48, 'datePublished': '2019-12-09T20:37:00', 'entryName': None, 'postType': 1, 'postConfig': 93, 'dateUpdated': '2019-12-09T20:37:00'}], 'postsCount': 34, 'pageSize': 10, 'categoryName': 'Python接口自动化'}

  

与fiddler抓包结果对比,结果一致。

Python接口自动化(五) cookie绕过验证码登录第3张

免责声明:文章转载自《Python接口自动化(五) cookie绕过验证码登录》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇JDBC操纵数据库的步骤(以SQLServer为例)绕过 Docker ,大规模杀死容器下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

12.django缓存+图片验证码

1. django缓存设置 django的六种缓存:https://www.cnblogs.com/xiaonq/p/7978402.html#i6 1.1 Django缓存作用 由于Django是动态网站,所有每次请求均会去数据进行相应的操作,当程序访问量大时,耗时必然会更加明显 缓存将一个某个views的返回值保存至内存或者memcache中,5分钟...

通过wireshark获取应用接口并使用爬虫爬取网站数据(二)

接上文 找到接口之后连续查看了几个图片,结果发现图片都很小,于是用手机下载了一个用wireshark查看了一下url 之前接口的是 imges_min下载的时候变成了images soga,知道之后立马试了一下 果然有效, 但是总不能一个一个的查看下载吧 于是连夜写了个java爬虫 下面是代码 packagecom.feng.main; importj...

UniAPP 利用sqlite保存数据

背景:利用uniapp开发一个APP,APP需要在断网的情况下,临时保存数据,把数据保存在uniapp的sqlite里面,这样可以随时的取到所保持的数据。 1.在uniapp的工程中需要添加sqlite数据库,如下图   2.在uniapp的共同组件中添加下面文件。 function openComDB(name, path, callback) {...

webpack3 + vue 添加 serviceWorker

新的vue脚手架已经可以自带pwa了,本文主要针对旧版的webpack。 先装三个插件: $npm i register-service-worker sw-precache-webpack-plugin webpack-pwa-manifest --save-dev 因为pwa主要用于生产,我们来动手改造 build/webpack.prod.conf....

GET和POST请求区别

关于http协议GET和POST方法的区别我们可以从各处得到比较一致的答案,今天我们来填一个面试中可能碰到的一个坑。 当面试官问你“你觉得GET和POST有什么区别"时,我们可能会想到以下几点(来源于网络): GET在浏览器回退时是无害的,而POST会再次提交请求。 GET产生的URL地址可以被Bookmark,而POST不可以。 GET请求会被浏览器主...

MongoDB聚合

--------------------MongoDB聚合-------------------- 1、aggregate():     1、概念:         1、简介             MongoDB中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果。有点类似sql语句中的 count(*), s...