惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Help Net Security
V
V2EX
博客园 - 【当耐特】
V
Visual Studio Blog
宝玉的分享
宝玉的分享
D
DataBreaches.Net
Engineering at Meta
Engineering at Meta
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
N
News | PayPal Newsroom
Schneier on Security
Schneier on Security
I
InfoQ
博客园 - Franky
The GitHub Blog
The GitHub Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Recent Commits to openclaw:main
Recent Commits to openclaw:main
AI
AI
WordPress大学
WordPress大学
Webroot Blog
Webroot Blog
L
LangChain Blog
Help Net Security
Help Net Security
V2EX - 技术
V2EX - 技术
TaoSecurity Blog
TaoSecurity Blog
O
OpenAI News
月光博客
月光博客
H
Hacker News: Front Page
F
Full Disclosure
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
SecWiki News
SecWiki News
S
Security Affairs
博客园 - 司徒正美
MyScale Blog
MyScale Blog
Vercel News
Vercel News
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
B
Blog RSS Feed
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Y
Y Combinator Blog
T
Tailwind CSS Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Hacker News: Ask HN
Hacker News: Ask HN
N
News and Events Feed by Topic
J
Java Code Geeks
Simon Willison's Weblog
Simon Willison's Weblog
Recent Announcements
Recent Announcements
D
Darknet – Hacking Tools, Hacker News & Cyber Security
I
Intezer
The Last Watchdog
The Last Watchdog
博客园_首页
C
Check Point Blog
罗磊的独立博客
酷 壳 – CoolShell
酷 壳 – CoolShell

博客园 - 逸乐太子

豆包无水印图片下载器|新媒体运营、自媒体创作者必备神器 免费无广告!网易UU远程,解锁远程办公、娱乐、运维全能玩法 告别手动复制!公众号文章批量导出工具,极致提升内容运营效率 高效办公神器:可视化Excel文档合并工具,告别手动复制粘贴 全国分省 Excel 爬取后,一键统计全文件数据行数|附即用型统计工具 某速体育网站中canvas数据获取 台风数据采集全攻略:从数据源到实操落地 豆包生成的图片带有AI字样怎么去除? 中国马拉松官方网站赛历信息采集工具 国家标准批量采集工具:全量元数据检索 + 批量导出 知网文献批量采集:BibTeX/EndNote 完整导出(含摘要、关键词、被引、全文链接) 超级课堂题库下载本地工具 洋葱智课在线题库导出工具 【python爬虫定制】PubScholar公益学术平台期刊名称爬取 【python数据采集】阳光高考学校信息采集 python程序的守护工具 【Python数据采集】国家自然科学基金大数据知识管理服务门户数据采集 pyinstaller 打包时第三方模块与图片资源加载 使用python爬取豆瓣电影短评评论内容 使用 js 实现 urljoin 方法 使用 Python 爬取高校教师信息 python从PDF文件中读取国民经济行业分类 python爬虫之JS逆向某易云音乐 国务院办公厅放假通知信息获取 python爬虫之JS逆向 linux下telnet命令有时无法退出 H5中腾讯地图定位信息在安卓手机中获取不到
python爬虫之企某科技JS逆向
逸乐太子 · 2022-06-11 · via 博客园 - 逸乐太子

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

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

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

UntitledImage

3.找到解析方法:

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

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

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

UntitledImage

UntitledImage

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

UntitledImage

UntitledImage

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

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

function decrypt(t){
    return JSON.parse(o("5e5062e82f15fe4ca9d24bc5", decode(t), 0, 0, "012345677890123", 1))
}

6.将上面的方法o和decode,以及decrypt方法写入qiming.js

然后在Python代码中使用execjs调用js中的方法就可以了。

with open("qiming.js", encoding='utf-8') as f:
        js_code = f.read()

    ctx = execjs.compile(js_code)
    decrapy_data = ctx.call("decrypt", encrypt_data)

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