ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python爬虫之企某科技JS逆向

2022-06-11 10:33:26  阅读:144  来源: 互联网

标签:encrypt python 数据 js decode 企某 JS data


python爬虫简单js逆向案例
在学习时需要用到数据,学习了python爬虫知识,但是在用爬虫程序的时候就遇到了问题。具体如下,在查看请求数据时发现返回的数据是加密的信息,现将处理过程记录如下,以便大家学习交流。

内容简介

需求:爬取某企科技网站投资事件栏目https://qimingpian.cn/finosda/project/einvestment的数据。

出现问题:获取数据首先需要发送请求,得到响应数据 。通过网页分析可知,需要获取的数据来自ajax发送POST请求动态获取,所以我选择通过向ajax的url发送请求得到响应数据。得到的返回数据是加密的,如下图所示。

UntitledImage

解决办法:通过分析浏览器请求到的相关js文件,找到解码部分代码,通过调用python中的js库execjs执行js代码

 

1.根据其关键字 encrypt_data进行全局搜索,寻找js的解密代码

UntitledImage

UntitledImage

找到 return t.encrypt_data && (t.data = Object(d.a)(t.encrypt_data))

此处得到的代码就是解密encrypt_data。在引处打断点,然后点击跳入。

UntitledImage

找到解析方法:

function s(e) {
return JSON.parse(o("5e5062e82f15fe4ca9d24bc5", a.a.decode(e), 0, 0, "012345677890123", 1))
}

调试到这里的时候参数e已经是之前接口中获取到的加密数据,通过JSON.parse转为json对象返回。

接下来重点分析这个区域的代码,可以看到,只有a.a.decode(e)调用了e,所以这个地方需要生成两个函数,一个是o(六个参数),另一个是其包含的这个函数decode(一个参数,也就是前面接口中获取到的encrypt_data),其他都是固定的字符串,将此方法o的js定义直接复制过来就行了

UntitledImage

UntitledImage

上面就是方法o的具体定义了,然后我们再找找decode方法。

UntitledImage

UntitledImage

按照上面的方法找到decode方法,查看decode方法定义,其中用到两个变量f,c,其初始值在上方,替换即可。到此我们就把这两个方法定义全部搞定了。

接下来再根据网站中的逻辑将加密数据解密,我们自己写一个返回的方法。

 

至此,数据已解密出来,接下来请继续做其它的处理操作。

 

标签:encrypt,python,数据,js,decode,企某,JS,data
来源: https://www.cnblogs.com/dzlishen/p/16365396.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有