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


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

    抓登录cookie

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

    #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抓包结果对比,结果一致。

    越努力,越幸运!!! good good study,day day up!!!
  • 相关阅读:
    php高级进阶系列文章--第二篇(PHP基础知识复习)
    开发常用linux命令
    composer 包管理工具学习总结
    微信菜单加emoji图标
    onethink导出excel
    onethinkp导入excel
    导航效果css
    php发送邮件
    js初学者的div移动
    html图片预览
  • 原文地址:https://www.cnblogs.com/canglongdao/p/13380814.html
Copyright © 2020-2023  润新知