第六题: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)
标签:10,www,请求,python,练习,spider,headers,session,猿人
From: https://www.cnblogs.com/achangblog/p/18159049