【困难】 猿人学web第一届 第15题 备周则意怠,常见则不疑

2024-09-02 04:28

本文主要是介绍【困难】 猿人学web第一届 第15题 备周则意怠,常见则不疑,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

数据接口分析

数据接口 https://match.yuanrenxue.cn/api/match/15
请求时需要携带 page 页码,m为加密参数
cookie中没有加密信息,携带 SessionId请求即可在这里插入图片描述

加密参数还原

查看数据接口对应的 requests 栈
在这里插入图片描述
m参数 是通过 window.m() 方法执行后得到的
在这里插入图片描述

打上断点,查看 window.m() 方法执行了什么

instance = results.instance;
window.q = instance.exports.encode;
window.m = function (){t1 = parseInt(Date.parse(new Date())/1000/2);t2 = parseInt(Date.parse(new Date())/1000/2 - Math.floor(Math.random() * (50) + 1));return window.q(t1, t2).toString() + '|' + t1 + '|' + t2;
};

window.q = instance.exports.encode;

在这里插入图片描述

window.q 是请求 wasm 文件编译成的,可以在 python 调用 wasm 文件

# 首先将 wasm 二进制的文件保存到本地
import requests
response = requests.get('https://match.yuanrenxue.cn/static/match/match15/main.wasm').content
open('15.wasm', 'wb').write(response)

调用

def get_m():t1 = int((int(time.time()) * 1000) / 1000 / 2)t2 = int((int(time.time()) * 1000) / 1000 / 2 - random.randint(10, 60))result = pywasm.load('15.wasm')results = result.exec("encode", [t1, t2])return f'{results}|{t1}|{t2}'

python 代码

import requests
import pywasm
import random
import timeheaders = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36",
}
cookies = {"sessionid": "你的sessionId",
}def get_m():t1 = int((int(time.time()) * 1000) / 1000 / 2)t2 = int((int(time.time()) * 1000) / 1000 / 2 - random.randint(10, 60))result = pywasm.load('15.wasm')results = result.exec("encode", [t1, t2])return f'{results}|{t1}|{t2}'def get_math15(page):url = "https://match.yuanrenxue.cn/api/match/15"params = {"m": get_m(),"page": f"{page}"}response = requests.get(url, headers=headers, cookies=cookies, params=params)return response.json()['data']if __name__ == '__main__':nums = 0for page_ in range(1, 6):nums_list = get_math15(page_)for num in nums_list:nums += num['value']print('page: ', page_, 'nums: ', nums)

这篇关于【困难】 猿人学web第一届 第15题 备周则意怠,常见则不疑的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1128989

相关文章

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

Java Web指的是什么

Java Web指的是使用Java技术进行Web开发的一种方式。Java在Web开发领域有着广泛的应用,主要通过Java EE(Enterprise Edition)平台来实现。  主要特点和技术包括: 1. Servlets和JSP:     Servlets 是Java编写的服务器端程序,用于处理客户端请求和生成动态网页内容。     JSP(JavaServer Pages)

BUUCTF靶场[web][极客大挑战 2019]Http、[HCTF 2018]admin

目录   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 [web][HCTF 2018]admin 考点:弱密码字典爆破 四种方法:   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 访问环境 老规矩,我们先查看源代码

EasyPlayer.js网页H5 Web js播放器能力合集

最近遇到一个需求,要求做一款播放器,发现能力上跟EasyPlayer.js基本一致,满足要求: 需求 功性能 分类 需求描述 功能 预览 分屏模式 单分屏(单屏/全屏) 多分屏(2*2) 多分屏(3*3) 多分屏(4*4) 播放控制 播放(单个或全部) 暂停(暂停时展示最后一帧画面) 停止(单个或全部) 声音控制(开关/音量调节) 主辅码流切换 辅助功能 屏

9.8javaweb项目总结

1.主界面用户信息显示 登录成功后,将用户信息存储在记录在 localStorage中,然后进入界面之前通过js来渲染主界面 存储用户信息 将用户信息渲染在主界面上,并且头像设置跳转,到个人资料界面 这里数据库中还没有设置相关信息 2.模糊查找 检测输入框是否有变更,有的话调用方法,进行查找 发送检测请求,然后接收的时候设置最多显示四个类似的搜索结果

JavaWeb【day09】--(Mybatis)

1. Mybatis基础操作 学习完mybatis入门后,我们继续学习mybatis基础操作。 1.1 需求 需求说明: 根据资料中提供的《tlias智能学习辅助系统》页面原型及需求,完成员工管理的需求开发。 通过分析以上的页面原型和需求,我们确定了功能列表: 查询 根据主键ID查询 条件查询 新增 更新 删除 根据主键ID删除 根据主键ID批量删除

JVM 常见异常及内存诊断

栈内存溢出 栈内存大小设置:-Xss size 默认除了window以外的所有操作系统默认情况大小为 1MB,window 的默认大小依赖于虚拟机内存。 栈帧过多导致栈内存溢出 下述示例代码,由于递归深度没有限制且没有设置出口,每次方法的调用都会产生一个栈帧导致了创建的栈帧过多,而导致内存溢出(StackOverflowError)。 示例代码: 运行结果: 栈帧过大导致栈内存

利用Django框架快速构建Web应用:从零到上线

随着互联网的发展,Web应用的需求日益增长,而Django作为一个高级的Python Web框架,以其强大的功能和灵活的架构,成为了众多开发者的选择。本文将指导你如何从零开始使用Django框架构建一个简单的Web应用,并将其部署到线上,让世界看到你的作品。 Django简介 Django是由Adrian Holovaty和Simon Willison于2005年开发的一个开源框架,旨在简

web群集--nginx配置文件location匹配符的优先级顺序详解及验证

文章目录 前言优先级顺序优先级顺序(详解)1. 精确匹配(Exact Match)2. 正则表达式匹配(Regex Match)3. 前缀匹配(Prefix Match) 匹配规则的综合应用验证优先级 前言 location的作用 在 NGINX 中,location 指令用于定义如何处理特定的请求 URI。由于网站往往需要不同的处理方式来适应各种请求,NGINX 提供了多种匹