猿人学第二题比赛题目
开始水第二篇,哈哈哈
http://match.yuanrenxue.com/match/2
题目是介样的,老规矩F12,刷新~
这个cookie一看就有问题哈,查看了一会儿再点第2页,漂亮,提示cookie失效,很明显嘛,这就是个cookie反爬
清空一下cookie
直接右键清除,再次刷新
第一页的话已经可以看到我们需要的就是这个m的值,第二页的cookie已经略显不同
设置cookie的话简单说一下,你去访问一个网站,先去A接口设置了cookie然后又去了B接口进行验证,获取数据
首先我们需要去访问A接口去设置cookie
import requests res = requests.get('http://match.yuanrenxue.com/match/2') print(res.text)
然后呢就拿到了这么一串东西,那必然就是设置cookie的js,也就是说我们在这个里面设置了cookie,再去请求就可以了
看到这么多,不要慌,一看就是ob混淆,在这个题目网站的上方有个分析工具,或者自己去下载个ob混淆一键还原也可以哈,
然后找到下面ob混淆解析,把这串代码的js标签去掉,复制进去,点击一键解混淆
再把下面的复制到webstorm中进行调试,关于webstorm激活可以看上一篇
这样就看起来很愉快了,也就是200来行的样子,而且一眼就看到cookie
那就直接来看这个cookie吧,我们需要的是m的值,其他不需要的干掉
然后来看_0x39ba95这个函数,根据前面看到的m的值,这可能是个时间戳
看下在哪里调用
就是个时间戳,接下来看_0x9c88d5这个函数,其实也就是_0x3c2401这个函数
第一段的话有兴趣的可以去追一下,最简单的判断哈,return的东西第一个没啥用,第二个后面没有没有地方调用的那就应该没啥用了,有用的话再扣回来就行了
手动滑稽~
所以删掉这里
这两行不能干掉的哈,对try那段感兴趣的可以把这两行干掉去看看哈
如果global怎么怎么样,然后怎么怎么样,否则怎么怎么样
然后我们就来看_0x9bdac4这里,可以控制台输出下,也可以根据刚才m那里的符号去判断下
return navigator["vendorSub"]; = return ' ';
这里是个定时器,直接干掉
然后代码就成了这样
灰常的干净,这样就可以直接运行跑起来了
现在只是输出了值,还需要整合下代码,合并下,搞下缩进,添加个调用cookie值的函数,然后传给py程序就行了
开头的那段一删,整体往回缩进,多余的符号删除
最后的console.log()改为
function getcookie() { return _0x58af7c(_0x1805c7()) } console.log(getcookie());
放入python中,爬取效果
本文来自博客园,作者:黑山老道,转载请注明原文链接:https://www.cnblogs.com/meipu/p/13884044.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现