郑州网站推广排名,有什么推广产品的渠道,工作纪律心得体会,做产品封面的网站一、JS逆向
解释#xff1a;在我们爬虫的过程中经常会遇到参数被加密的情况#xff0c;这样只有先在前端搞清楚加密参数是怎么生成的才能继续我们的爬虫#xff0c;而且此时我们还需要用python去执行这个加密的过程。本文主要讲怎么在浏览器调试JS#xff0c;以及Python执…一、JS逆向
解释在我们爬虫的过程中经常会遇到参数被加密的情况这样只有先在前端搞清楚加密参数是怎么生成的才能继续我们的爬虫而且此时我们还需要用python去执行这个加密的过程。本文主要讲怎么在浏览器调试JS以及Python执行JS
1.浏览器调试JS
1.1 全局搜索
解释我们想要找到被加密的内容肯定先从参数入手比如页面提交字段{passwd:5d114e4f6bdf59e7b9ca20704f1032ef54753c1969b452ba03fea1773c1a49ed6c1e72fb811bd3baccdd29e975e32d4d82f7f215a42ad4b56d561eb6eeb4c3f069936bd58a2c4dadac05fb107c2c94bfbc8efad9cb3649f6581c3d9b228ee1482e7bf39a349eed16dc0fdbb979294c5f73e2c37e489c3fde630ea35dcbe7979b}这种一看就是加密了此时我们打开F12开发者工具选择选项卡网络刷新Ctrl-F搜索关键词passwd之后就要靠自己了点开文件依次查找找到有用的信息再卡断点
1.2 断点
解释假设只是你找到了被加密内容调用的位置此时需要通过加断点运行去验证自己的设想此时如下图1先跳去来源面板之后我们通过图二示例就可以加断点了图三是(刷新页面或触发该代码)程序运行到断点处时我们要选择的模式其为一行一行运行代码这个比较常用图四标准了我们断点运行后我们能看到的一些局部变量的值
2.Python执行JS
安装pip install pyexecjs
注意这个库可能你电脑上有node或者其它js环境而且执行的js代码不能包含浏览器里面特有的一些元素比如windowdocument等等我们用python运行js一般也就是计算遇到这些浏览器元素删除即可
解释这个库能够让python执行js代码下面为简单演示
简单例子
import execjs# compile里面写js代码
c execjs.compile(function hello(str){return hello str;})
# call第一个参数是函数名后面的参数对应函数里面的参数比如这里hello(str)的参数str
d c.call(hello,jack)
print(d) # hellojack读取多个js文件
import execjsprint(execjs.get().name)
with open(./js/test.js, r) as f:jscontent f.read()with open(./js/password.js, r) as f:jscontent f.read()# jscontent jscontent jscontent1
ctx execjs.compile(jscontent)d ctx.call(fuction, run)
print(d)