前些时候,看到有人在群里发了一个网站,说是返回的data参数是加密信息, 无法解析data保存相关信息。 想到好久没写文章了,于是乎就去看了一下, 准备那这个当素材。
首先打开网站是这样的(网站地址: http://yc.wswj.net/ahsxx/LOL/public/public.html)
我们主要是爬取它的降雨信息, 根据网友提示,找到他想解密的响应信息,是下面这段
需要破解的就是data这段信息啦。那我们可以看到respCode这个字段就是它返回的响应状态了, 我们直接全局搜索respCode这个关键字,信息如下:
可以看到有很多地方都判断了respCode, 我们找到main.js 的那个点进去(其实点哪个都一样, 我们主要是找到它的加密函数, 然后解析出来)。
可以把断点打在红框的地方, 经过红框标注的地方解密,生成了页面数据。进入这个函数我们发现是这样的:
发现它调用的是 this.Convert,接着往下找
可以发现它的解密逻辑就在这里了,返回的result就是最终的结果。 utf8解码和base64解码咱们都可以用python实现,就不用它自己写的这两个方法了。 最后把data复制出来,用我们自己的代码验证一下,最终解析的部分结果
这个js代码看上去挺简单的,就不用带着大家解密了。大家可以用js2py调用它的函数。也可以自己用python重写。 这两个方式我都做了,代码传送门
至此结束,此篇博文仅供学习使用。 转载请注明出处