记eval(function(p,a,c,k,e,d) js混淆后的json处理

2022/1/3 23:12:03

本文主要是介绍记eval(function(p,a,c,k,e,d) js混淆后的json处理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

近来爬一网站,想把它的影片的下载地址爬下来,直接request,网页源码是没有对应的,分析一下发现script处有加密处理的,就是eval(function(p,a,c,k,e,d) 这种形式的,最后的p是var xxx='xxxxxxxxx',后面的是json字符串,先用execjs处理script处内容,把return p改成console.log(p),但execjs.eval执行有很多问题,别外json字符串跟python的有很多的不同,没想出很好的办法转换,最后决定用subprocess执行node test.js这样处理,js用script = script + "\nconsole.log(JSON.stringify(JSON.parse(down_urls)))" 这样形式拼接,然后保存为js,然后subprocess.Popen("node test.js", shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE,encoding='utf-8'),直接获取命令行的返回结果,拿到了符合python环境的json字符串,直接规格化就可以使用了~,利用了js环境的下的对json的序列化处理



这篇关于记eval(function(p,a,c,k,e,d) js混淆后的json处理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程