猿人学内部练习平台6~10题

第六题:session保持检测

使用session请求即可:session = requests.Session()

第七题:请求规律检测1-post

根据请求接口找规律,在每一页请求前请求一次https://www.python-spider.com/cityjson即可

requests.post('https://www.python-spider.com/cityjson', verify=False)
response = requests.post('https://www.python-spider.com/api/challenge7', headers=headers, cookies=cookies, data=data, verify=False)   

第八题:控制台呼出检测

打开控制台,发现页面跳转到了空白页,于是打下 script 断点:

点击后退,页面js会一个个加载,此时hook题目所需值 window.threshold,控制台输入如下代码:

Object.defineProperty(window, "threshold", {
    set:function (params) {
        debugger;
    }
})

一直下一步,就会断点到参数生成位置:

可以看到,参数值为 160

第九题:更复杂的动态js加密

同第二题的解决思路,删除cookie中的sign后,加入hook代码hook sign:

根据调用堆栈找到对应位置,位于文件 9 中:

查看最后一个参数,是一个函数,返回的是当前时间戳:

将该文件代码保存至本地(不要格式化),修改 function _0x1063a5(_0x36c096),让其返回 1589023846363,然后运行,得到结果:


虽然有报错,但不影响我们已经获取到结果。当然实际调试时,代码可能与本文不同,根据情况修改时间戳的值即可。

第十题:请求规律检测2 - headers

该题有请求头顺序检测,固定即可:

headers = {
    'Content-Length': '6',
    'Accept': 'application/json, text/javascript, */*; q=0.01',
    'Referer': 'https://www.python-spider.com/challenge/10',
    'Accept-Encoding': 'gzip, deflate, br',
    'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6'
}
# 固定请求头顺序
session = requests.Session()
session.headers.clear()
session.headers.update(headers)
posted @   脱下长日的假面  阅读(222)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
点击右上角即可分享
微信分享提示