Python爬虫:如何解决python执行js的bug
爬虫最烦的就是搞逆向,而逆向其实本身完全可以成为另外一种职业了。
做爬虫什么的,太累了。
解决pyv8和pyexectjs 出现bug的问题。
运行环境 Runtime environment
1 | 操作系统: Windos10 |
背景
为了吃饭。用文书网做个简单举例。
博文主要不是说如何逆向爬取的问题,
而是说在python执行JS时出现的问题有什么解决办法。
简单说明
首先,找入口
很容易就找到函数位置
复制出来,console执行一波
开始搞js(哪个报错找哪个)
可以看出,random没定义,要去找random,修复到堪用就可以
一顿操作猛如虎,放到python里面执行
解密完发现,还有令人眼熟的CryptoJS
这个百度下,是js的一个加密库
nodeJS执行
在python的JS执行环境里装一下CryptoJS这个包即可
然后导入
或用pyv8等等库去调用CryptoJS源码来使用
就像这样,就懒得写那么细了大概意思。运行一段时间,你会发现机器cpu100%排查就发现就是这个代码作的孽
这是这个库本身的问题,所以最好是用nodejs启动一个服务
比如:nodejs koa
是nodejs最简单的web框架
文书有3个js需要调用,所以你只需要把3个js写成接口调用即可自建本地web服务 接口逻辑写入js加密文件 然后爬虫调用接口
创建文件夹
安装下koa的依赖
每启动一个服务都要安装
建议去了解一下nodeJS的koa
app.js等文件中导入依赖
npm i xx 命令,该加的就加上
把之前逆向好的JS源码拷贝到koa
配置路径
输入次级路径
就基本把这个小接口完工啦!
最后放个全家福!npm启动接口服务
配置路由,导入,完事
总结
说真的,这类东西用文字讲不清楚。
全当说个思路好了。
源码的话,会放到github仓库中了
KOA源码
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 快乐咸鱼のRaXianch窝!
评论
WalineValine