目标站点:cS4xMGpxa2EuY29tLmNu
再一次抓取目前所收录的所有股票过程中,遇到了一个小小的技术难题,那就是发现hexin-v参数是实时生成的,所以我们需要不断的去获取该参数,以达到全部信息抓取的目的。
首先我们通过hook技术,很轻易的获取到了这个cookie设置生成的地方。
Object.defineProperty(document, 'cookie', {
set: function(val) {
debugger;
return val;
}
})
通过跟栈的方式可以找到其cookie生成的核心代码即为
通过代码调试的方式,我们可以判断et.encode(n),就是生成的cookie和hexin-v。
找到这段代码后,我们有两种方式可以本地调试出整个cookie的生成方式,
一个是通过调用这个N函数,来获取返回值,技术难点在于我们需要自己生成这个函数S的相关变量,最终new出来即可。
二是通过抠代码,补环境的方式。
在下采用的就是第二种方法,通过调研发现,N函数所在的整个函数为一个大的自执行函数,所以我们可以通过将整个js抠到本地的方式,然后根据调试中遇到的环境检测,去还原整个环境参数,从而到达改代码将cookie设置到document中的方式提取出来。
chameleon.min.1632549.js这个就是整个hexin生成的方式代码函数,将整段代码提取出来后,我们在本地调试运行,看看那些地方需要修改,然后根据游览器环境去还原,最终达到生成cookie的目的。
最终效果为上图所示,将该函数封装以后,直接可以调用,从而完成信息抓取。
如需要详细的代码或商业合作,请联系qq:986361369.
若涉及版权侵犯,请及时告知,谢谢。
代码下载地址(生成的参数适用本文,若不适用请检查对端是否js有更新):