某游戏站麻将数据逆向,该页面数据在网页源码中无法找到,源码上没有,网页调试是存在数据的,数据是js文件驱动生成,需要JS加密逆向分析,逆向思路和方法知道借鉴和参考,可以说本篇是步步踩坑!
建议:JS逆向,JS基础是关键,JS基础语法学习一定不要落下!
踩坑的根本原因在于:仅仅扣取JS代码是不行的,得会调试代码,能够修改代码,对于JS代码运行报错能够进行基本的处理和修改,使其正常运行!
网址:
aHR0cHM6Ly9ob3RlbC5iZXN0d2Vob3RlbC5jb20vTmV3TG9naW4vP2dvPWh0dHBzJTNBJTJGJTJGaG90ZWwuYmVzdHdlaG90ZWwuY29tJTJG
特征:
页面数据在源码中无法找到,因为源码中根本不存在该代码,由JS驱动生成html数据代码!
原理:
一个JavaScript 语法,如需从 JavaScript 访问某个 HTML 元素,可以使用 document.getElementById(id) 方法,这个 id 就是某个 HTML 元素的属性,然后使用 innerHTML 来获取或插入元素内容,可以看菜鸟教程的一个例子:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
<h1>我的网页</h1>
<p id="demo">我的第一个段落。</p>
<script>
document.getElementById("demo").innerHTML = "你好 Dolly";
</script>
</body>
</html>
在线调试代码:
https://www.runoob.com/try/try.php?filename=tryjs_statement
更多或如有时间,可看视频版解析:
一 探寻 JavaScript 反爬虫的根本原因和基本原理-夜幕NightTeam(B站)
https://www.bilibili.com/video/BV16e4y1G7xv?p=2&vd_source=fcecddad2b6d926771ba73e82af70880
以下为踩坑过程:
2.查看需要获取的数据html代码片段
3.python 爬取效果,无数据
4.数据对比,大概率可以确定是1008js文件生成页面数据
5.老规矩,搜索关键字查找加密部分,这里关键字为 document.getElementById
6.可以看到就是1008js文件,在生成数据可疑处打上断点
7.断点调试验证数据生成,可看到部分数据生成
8.继续下一行调试,验证,这里就考验js阅读能力了
9.经过对比打印输出验证,g就是我们要获取的值,运行输出g值即可
10.抠出js代码,并修改调试
由于关联函数多,基本上都可以全部抠出再进行修改
其中:
参数 a=‘q’
参数 o
还需要替换一处代码,注释后面不要的代码
以及 return g
这些就是js调试的坑了:
ReferenceError: fa is not defined
ReferenceError: document is not defined
这里如果不懂js调试运行,主要是处理报错的能力,坑是没办法填了!
本地运行效果:
本文分享自 Python与SEO学习 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!