爬虫逆向实战(18)-某得科技登录(base64、cookie)

2023-10-30

一、数据接口分析

主页地址:某得科技

1、抓包

通过抓包可以发现数据接口是AjaxLogin
在这里插入图片描述

2、判断是否有加密参数

  1. 请求参数是否加密?
    查看“载荷”模块可以发现有一个password加密参数和一个__RequestVerificationToken
    在这里插入图片描述

  2. 请求头是否加密?

  3. 响应是否加密?

  4. cookie是否加密?
    查看cookie发现同样有一个__RequestVerificationToken,但是与表单参数中的不同
    在这里插入图片描述

二、加密位置定位

1、password

观察表单中的加密参数password发现类似于base64转码,在控制台进行测试,发现确实就是
在这里插入图片描述

2、表单参数__RequestVerificationToken

通过搜索关键字可以发现,表单中的__RequestVerificationToken是取的html静态页面中的数值
在这里插入图片描述

3、cookie中的__RequestVerificationToken

清除cookie之后刷新页面,可以发现,是在请求静态页面时服务器设置的cookie
在这里插入图片描述

三、思路

首先请求html页面,获取到表单中的__RequestVerificationToken以及cookie,再根据获取到数据发送登录请求。

四、避坑

在发送请求时会遇到一个报错
在这里插入图片描述
在发送请求时加上一个verify=False的参数就可以了
源代码:

"""
Email:912917367@qq.com
Date: 2023/8/16 16:38
"""
import base64
import re

import requests


class Spider:
    def __init__(self, username, password):

        self.session = requests.session()
        self.session.headers = {
            "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
            "Accept-Language": "zh-CN,zh;q=0.9",
            "Cache-Control": "no-cache",
            "Connection": "keep-alive",
            "Pragma": "no-cache",
            "Sec-Fetch-Dest": "document",
            "Sec-Fetch-Mode": "navigate",
            "Sec-Fetch-Site": "none",
            "Sec-Fetch-User": "?1",
            "Upgrade-Insecure-Requests": "1",
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36",
            "sec-ch-ua": "^\\^Not/A)Brand^^;v=^\\^99^^, ^\\^Google",
            "sec-ch-ua-mobile": "?0",
            "sec-ch-ua-platform": "^\\^Windows^^"
        }
        self.token = ''
        self.username = ''
        self.password = ''

    def get_token(self):
        url = "https://www.leadbank.com.cn/login/"
        # url = "https://www.baidu.com"
        response = self.session.get(url, verify=False)
        pattern = r'<input name="__RequestVerificationToken" type="hidden" value="(.*?)"'
        self.token = re.findall(pattern, response.text)[0]

    def login(self):
        encoded_bytes = base64.b64encode(self.password.encode('utf-8'))
        pwd = encoded_bytes.decode('utf-8')
        url = "https://www.leadbank.com.cn/customer/AjaxLogin"
        data = {
            "userName": self.username,
            "password": pwd,
            "mark": "encry",
            "rememberMe": "false",
            "returnUrl": "",
            "validcode": "n948",
            "random": "1692176276000",
            "__RequestVerificationToken": self.token
        }
        response = self.session.post(url, data=data, verify=False)

        print(response.text)
        print(response)


if __name__ == '__main__':
    s = Spider('账号', '密码')
    s.get_token()
    s.login()

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

爬虫逆向实战(18)-某得科技登录(base64、cookie) 的相关文章

  • STM32 基础系列教程 23 - USB_cdc

    前言 学习stm32 USB接口使用 学会用CUBE工具快速创建USB设备工程及调试 关于usb的相关知道请读者提前准备并学习 当然如果不想深究其中原理的话 跟着本文来操作就可以实现基于USB的设备开发了 需要提示的是 stm32在使用us
  • 2023年Python面试题_后台开发

    Flask 中请求上下文和应用上下文的区别和作用 current app g 是应用上下文 request session 是请求上下文 手动创建上下文的两种方法 with app app context app current app g
  • php判断已登录用户名和密码,PHP验证登录用户名和密码

    include once discuz include common inc php CTDF USERINFO array CTDF USERINFO sid sid CTDF USERINFO uid di 登录页面 login htm
  • 大学生必备之GPA计算(满绩为5)

    平均学分绩点 Grade Point Average 即GPA 是以学分与绩点作为衡量学生学习的量与质的计算单位 以取得一定的学分和平均学分绩点作为毕业和获得学位的标准 实施多样的教育规格和较灵活的教学管理制度 平均学分绩点的计算方法是 是

随机推荐

  • 长沙师范大学计算机学院,中心-湖南师范大学信息科学与工程学院

    信息科学与工程学院实验中心 现设有计算机专业实验室 信息技术实验室和计算机基础实验室 目前实验中心共有专职的实验人员10人 兼职3人 其中高级实验师3人 讲师3人 实验师6人 其它1人 研究生导师2人 计算机专业实验室现有实验用房11间 计
  • SpringBoot当中使用JDBC配置druid数据源

    本篇文章主要讲解SpringBoot当中使用JDBC配置druid数据源 感兴趣的跟小编一起来学习呀 目录 1 导入依赖 2 application yml配置 3 DruidConfig配置 4 controller 5 测试 1 导入依
  • QT部件透明阴影效果与不规则窗体

    透明效果 原始效果 设置整个窗体透明 调用setWindowOpacity 方法 传入一个0 1之间的值来表示透明度 1表示不透明 0表示完全透明 在构造函数中添加 setWindowOpacity 0 5 0 1之间 设置窗体透明 部件不
  • Trie代码java

    还要判断节点是否是一个映射 比如 pan pandas 所以需要一个boolen来判断不是叶子结点是否为一个单词 211 Add and Search Word Data structure design Medium 81251Favor
  • 当SAP遇见RPA:RPA如何自动化SAP系统?

    对中国企业而言 如何实现海量数据的交互 存储 分析 真正发挥数据价值进行技术和业务创新 是数字化转型的关键 也是需要应对的挑战 2019年初 ERP巨头SAP发布了 中国加速计划 计划在未来五年 持续加大对中小企业市场的研发投入 赋能中国企
  • 微信小程序之开发遇到 does not have a method “xxxx“ to handle event “tap“ 问题的解决方案【已解决】

    今天在开发一个小功能 copy了之前写的代码 但是在实现功能时 出现了如下问题 先在这简单总结一下解决方案 在调用方法时 在 中前后多加了空格 在 js 中没有定义该方法 在 js 中方法定义的位置可能不对 比如放在了 data 中 组件化
  • vue-quill-editor踩坑记录--富文本内容回显样式不对

    使用vue quill editor写的富文本 内容在H5使用v html显示时 样式跟在富文本写的时候样式不一样 字体大小显示不出来 原因 有些类名 在v html页面是没有找到的 解决 全局或者局部引入vue quill editor的
  • js用户密码强度验证函数

    原文地址 http blog csdn net dreamzml article details 9225529 s调用此函数 返回密码强度级别 html view plain copy print function getStrength
  • mysql索引覆盖-百万数据表优化

    文章目录 前言 一 业务场景 二 问题分析 三 回表代价 四 解决方案 总结 前言 写博客是自己对知识梳理 目前是写给自己看 算是自己学习后的作业 也是为了养成一个良好的习惯 一 业务场景 先看看以下关于查询用户订单的慢SQL的问题该如何优
  • volatile 关键字-这一篇就够了

    下文笔者将详细介绍volatile这一篇文章 将使你真真的了解到volatile关键字的用法 如下所示 volatile关键字 的功能 我们都知道volatile关键字有两个功能 1 保证变量的内存可见性 2 禁止指令重排序 可见性 例 变
  • 自学软件测试,1个月内如何快速学到可以找工作的程度?

    首先说下写这篇文章的目的 测试猿课堂在招生的过程中 发现有部分学员因为一些自身的情况 想先短时间学一下软件测试的基础知识 达到可以就业的程度就立马找工作 然后边上班边学习 这种情况可以理解 希望能通过这篇文章 帮助更多急于转行 但同时又希望
  • 二十.刷题.12

    题目 打印出所有水仙花数 所谓水仙花数是指一个三位数 其各位数字立方和等于该数本身 例如 153是一个水仙花数 因为153 1的三次方 5的三次方 3的三次方 include
  • 常用大数据框架对比

    最近看到一篇写大数据框架的文章 写的非常好 也根据自己的经验做一些总结吧 大数据框架的选型对刚接触分布式运算的人来说确实有点迷茫 希望这篇文章可以对大家有所帮助 简介 大数据是收集 整理 处理大量大规模数据集 并从中获得见解所需的非传统战略
  • ES相关DSL语句(持续更新)

    索引操作 创建索引 创建索引使用PUT请求 后面跟上索引名称就好了 由于7 x默认type为 doc 所以后面不必跟上type了 在PUT简单请求同时 可以加上JSON请求体 进行复杂创建 创建索引user 可以通过参数setting设置分
  • C语言编写九九乘法表

    文章目录 基于C语言的九九乘法表实现 1 右上三角 2 左下三角 3 左上三角 4 右下三角 基于C语言的九九乘法表实现 1 右上三角 九九乘法表 右上三角 include
  • IDEA2019自动定位文件

    今天帮同时设置一下 idea自动定位文件 突然发现 idea2019的设置和以前不同了 今天就来记录一下 点击设置按钮 勾选住always select opened file就可以了
  • 学习笔记:关于上拉输入、下拉输入、模拟输入、浮空输入、推挽输出、开漏输出、复用输出的区别

    1 上拉输入 上拉就是把电位拉高 比如拉到Vcc 上拉就是将不确定的信号通过一个电阻嵌位在高电平 电阻同时起限流作用 弱强只是上拉电阻的阻值不同 没有什么严格区分 2 下拉输入 就是把电压拉低 拉到GND 与上拉原理相似 3 浮空输入 浮空
  • PCA:利用PCA(四个主成分的贡献率就才达100%)降维提高测试集辛烷值含量预测准确度并《测试集辛烷值含量预测结果对比》—Jason niu...

    load spectra temp randperm size NIR 1 P train NIR temp 1 50 T train octane temp 1 50 P test NIR temp 51 end T test octan
  • 游戏开发unity编辑器扩展知识系列:自定义菜单子项MenuItem

    参考 https blog csdn net leonardo davinci article details 78503601
  • 爬虫逆向实战(18)-某得科技登录(base64、cookie)

    一 数据接口分析 主页地址 某得科技 1 抓包 通过抓包可以发现数据接口是AjaxLogin 2 判断是否有加密参数 请求参数是否加密 查看 载荷 模块可以发现有一个password加密参数和一个 RequestVerificationTo