爬虫最烦的就是搞逆向,而逆向其实本身完全可以成为另外一种职业了。
做爬虫什么的,太累了。
解决pyv8和pyexectjs 出现bug的问题。

运行环境 Runtime environment

1
2
3
操作系统: Windos10  
IDE: JetBrains Pycharm 2019.2.4 x64
语言: Python 3.7.4

背景

为了吃饭。用文书网做个简单举例。
博文主要不是说如何逆向爬取的问题,
而是说在python执行JS时出现的问题有什么解决办法。

简单说明

  1. 首先,找入口

  2. 很容易就找到函数位置

  3. 复制出来,console执行一波

  4. 开始搞js(哪个报错找哪个)
    可以看出,random没定义,要去找random,修复到堪用就可以

  5. 一顿操作猛如虎,放到python里面执行
    解密完发现,还有令人眼熟的CryptoJS
    这个百度下,是js的一个加密库

  6. nodeJS执行
    在python的JS执行环境里装一下CryptoJS这个包即可

    然后导入

  7. 或用pyv8等等库去调用CryptoJS源码来使用
    就像这样,就懒得写那么细了大概意思。

  8. 运行一段时间,你会发现机器cpu100%排查就发现就是这个代码作的孽
    这是这个库本身的问题,所以最好是用nodejs启动一个服务
    比如:nodejs koa
    是nodejs最简单的web框架
    文书有3个js需要调用,所以你只需要把3个js写成接口调用即可

  9. 自建本地web服务 接口逻辑写入js加密文件 然后爬虫调用接口
    创建文件夹

    安装下koa的依赖

    每启动一个服务都要安装

    建议去了解一下nodeJS的koa
    app.js等文件中导入依赖
    npm i xx 命令,该加的就加上


  10. 把之前逆向好的JS源码拷贝到koa


    配置路径

    输入次级路径

    就基本把这个小接口完工啦!
    最后放个全家福!

  11. npm启动接口服务
    配置路由,导入,完事

总结

说真的,这类东西用文字讲不清楚。
全当说个思路好了。
源码的话,会放到github仓库中了
KOA源码