前言:服务器为了防止获取他们的数据,可谓是使用各种方法,js逆向可以很方便的解析出来一些加密数据,毕竟道高一尺魔高一丈,今天告诉大家袁人学第12题的解题思路,超详细解题思路。

需求:

        抓取这5页的数字,计算加和并提交结果

这个跟之前的cookie反扒的需求一样,需要看的可以去猿人学13题解析去查看,这题跟之前13题差别就在于一个是cookie反爬,一个是js反爬,接下来开始解题:

1.分析过程

老规矩打开我们的f12开发人员调试工具,点击第一页的按钮进行抓包可以看到cookie中我们只需要知道一个sessionid,再看请求数据:

刚进来就看到了这个请求url后面的m参数好复杂,应该是加密过的,请求头里没什么可疑数据,看来我们接下来就需要分析这个m参数是怎么来的了。

首先猜测,可能是通过加密得来的,常见的加密有base64和md5,md5加密的话没有这么短,那极有可能是base64加密得来的,加密的话需要运行js代码,我们全局搜索一下这个m变量

这种单字符变量直接搜索果然不现实,太多结果了没法找,我们换种思路,寻找一个跟m在一起的参数page试试

三个js文件里有,大大缩减了我们的寻找范围,点开第一个文件看看附近没有m不太像,点开第二个js文件

基本确定就是这个了。看代码段window.page是一个数值表示的第几页,btoa函数经过查询是前端进行bs4编码的一个函数,我们使用工具进行编码对比一下

与m的值一模一样,分析成立,开始代码实现

2.上代码

sessionid怎么获取不知道的看下我猿人学13题解题思路

我们需要使用两个库:

base64:进行base64编码

requests.session:与服务器保持长连接

jsonpath:便于我们对得到的js数据进行提取

# base64:进行base64编码
# requests.session:与服务器保持长连接
# jsonpath:便于我们对得到的js数据进行提取
import base64
import random
import timefrom requests import session
import jsonpaths = session()
# 按要求配置请求头
s.headers = {'user-agent': 'yuanrenxue.project','cookie': 'Hm_lvt_c99546cf032aaa5a679230de9a95c7db=1638275262,1638277492,1638438036,1638533253; qpfccr=true; no-alert3=true; Hm_lvt_9bcbda9cbf86757998a2339a0437208e=1638258714,1638277499,1638438048,1638533272; tk=8212031715942172672; sessionid=mfx6hizw715qqtxunf7wd722iauclwvu; Hm_lpvt_9bcbda9cbf86757998a2339a0437208e=1638533293; Hm_lpvt_c99546cf032aaa5a679230de9a95c7db=1638533300'
}
# 循环爬取五页的数据
num = 0  # 数字总和
for i in range(5):# 这里需要注意的是b64encode需要传入一个字节类型的数据,所以需要先把字符串转换成字节,转换过后在转换回字符串m = base64.b64encode(('yuanrenxue' + str(i + 1)).encode()).decode()# 获取json数据json_data = s.get(f'https://match.yuanrenxue.com/api/match/12?page={i+1}&m={m}').json()# 提取每一个数字num_list = jsonpath.jsonpath(json_data, '$..value')# 遍历求和for j in num_list:print(j, end='\t')num += j# 添加休眠时间避免反爬(可有可无)time.sleep(random.randint(0, 3))print()
print('num:', num)
成功得到数据需要注意的是在使用base64编码时候需要把字符串转换成字节类型,进行base64编码过后再转换回字符串,我就因为这个耽误了一点时间

大功告成,解散

猿人学12题超详细解题思路-入门级js(base64编码)相关推荐

  1. 【Day24】 LeetCode算法题 (注释详细+解题思路)[43. 字符串相乘 ] [1800. 最大升序子数组和]

    刷题打卡,第 二十四 天 题目一.43. 字符串相乘 题目二.1800. 最大升序子数组和 题目一.43. 字符串相乘 原题链接:43. 字符串相乘 题目描述: 给定两个以字符串形式表示的非负整数 n ...

  2. 剑指offer第二版答案详细版(带详细解题思路)

    1.滑动窗口的最大值(剑指offer原59题) 解题思路:其实是一个队列的问题,用一个队列去维护当前窗口中的所有元素:首先将超出窗口中的队头元素先删掉,然后将新的元素插入当前窗口中,插入时要判断新插入 ...

  3. OpenJudge NOI 1.5 编程基础之循环控制(21-30题)C++ 解题思路

    续上一篇文章OpenJudge NOI 1.5编程基础之循环控制(11-20题) C++ 解题思路_Leleprogrammer的博客-CSDN博客续上一篇文章.https://blog.csdn.n ...

  4. 阿里聚安全攻防挑战赛第三题Android PwnMe解题思路

    阿里聚安全攻防挑战赛第三题Android PwnMe解题思路 大家在聚安全挑战赛正式赛第三题中,遇到android app 远程控制的题目.我们今天带你一探究竟,如何攻破这道题目. 一.题目 购物应用 ...

  5. 2020年11月份某kh比赛部分CTF赛题求大佬解题思路

    2020年11月份某kh比赛部分CTF赛题求大佬解题思路 只down下来misc和密码两类题 麻烦大佬们搞一搞这四道题 只down下来misc和密码两类题 百度网盘赛题分享 链接: https://p ...

  6. OpenJudge NOI 1.5编程基础之循环控制(31-40题)C++ 解题思路

    续上一篇文章.OpenJudge NOI 1.5 编程基础之循环控制(21-30题)C++ 解题思路_Leleprogrammer的博客-CSDN博客续上一篇文章OpenJudge NOI 1.5编程 ...

  7. 华为OD机试真题 Java 实现【二维伞的雨滴效应】【2023 B卷 100分】,附详细解题思路

    目录 一.题目描述 二.输入描述 三.输出描述 四.解题思路 五.Java算法源码 六.效果展示 1.输入 2.输出 3.说明 大家好,我是哪吒. 做技术,我是认真的,立志于打造最权威的华为OD机试真 ...

  8. 华为OD机试真题 Java 实现【跳房子II】【2023 B卷 100分】,附详细解题思路

    一.题目描述 跳房子,也叫跳飞机,是一种世界性的儿童游戏. 游戏参与者需要分多个回合按顺序跳到第1格直到房子的最后一格,然后获得一次选房子的机会,直到所有房子都被选完,房子最多的人获胜. 跳房子的过程 ...

  9. 2023年认证杯C题超详细思路配有实现代码

    2023年认证杯初步解题思路 后续会更新思路对应的实现代码 问题一思路 数据预处理:首先,根据描述,你已经有了心电波形的功率谱密度数据.你可以将频率范围从0 Hz到180 Hz分成361个频率间隔为0 ...

最新文章

  1. iOS GCD_1
  2. bizmsg是什么文件可以删除吗_电脑C盘满了怎么清理?哪些文件可以删除?
  3. 游戏领域Serverless架构探索之路
  4. 针对.NET开发者(neo-charm) 1.0 的NEO区块链架构参考模型
  5. 大数据(9) - Flume的安装与使用
  6. 浮点型的三个特殊值 Double.NEGATIVE_INFINITY Double.POSITIVE_INFINITY Double.NaN
  7. python数据结构实验目的_图的基本操作实现(数据结构实验)
  8. Redis实现分布式锁2
  9. Java 25天基础-DAY 05-面向对象-构造函数
  10. C/C++中使用可变参数
  11. like语句太慢 sqlserver_SQLSERVER查询速度慢的原因收集以及优化建议
  12. 拼音模糊搜索 php,精确搜索加拼音搜索加模糊搜索
  13. 浙大2016计算机考研分数线,2016浙江大学考研分数线公布
  14. 微信公众号支付JSAPI
  15. 【OS笔记 4】操作系统的组织结构(层次结构、微内核结构)虚拟机的概念
  16. Android 获取经纬度处理
  17. [18调剂]中国科学院深圳先进技术研究院“视频信号处理”课题组招聘
  18. 风险管理可分为哪两类?具体方法是什么?
  19. Jenkins镜像加速(清华大学镜像)
  20. 计算机一级必考知识点,计算机一级考试基础知识点汇总.doc

热门文章

  1. D3D中2D图片的绘制
  2. 极限类题之积分上限的函数的极限
  3. 破解中兴zxv10 h108b联通定制版全过程
  4. 计算机相关扩展活动战队名字,2020最新战队名字大全
  5. 李子柒:不希望年轻人当网红...
  6. iview 组件 设置头像更换
  7. 图片的角如何弄成圆角?
  8. 67、INGeo:利用占用网格先验加速/减少迭代次数
  9. android 陀螺仪简单的使用
  10. LeetCode hot-100 简单and中等难度,51-60.