• 【微信读书】数据内容接口逆向调试01


    需求爬取微信读书某一本书整本书的内容

    增强需求,大批量爬取一批书籍内容

    众所周知微信读书是一个很好用的app,他上面书籍的格式很好,质量很高。

    本人充值了会员但是看完做完笔记每次还得去翻很不方便,于是想把书籍内容弄下来,方便做笔记学习,本文只做学习交流,不做任何商用,不会披露关键细节代码。如有问题欢迎互相私聊交流:mastercy1

    01.找到请求,解析响应

    02.解析参数,模拟请求

    01.找到请求,解析响应

    我们先打开网页版,随便打开一本书,打开F12,点一下书籍内容的dom元素,是canvas

    我们点击下翻页看一下请求,发现一共这些请求,一个一个看一下,猜测是e0,1,2,3,返回了文本内容

    点进去看一下堆栈,有一个bccxxxx.js 和一个 8.222xxxx.js 看起来是个异步请求

    这里有一个技巧这种两个或者多个js文件,一般一个是提供基础的一些东西,一个是业务的流程

    原理大概就类似于一个是定义抽象类和初始化的地方,一个是对实例化的对象做操作控制来实现业务的地方

    而有一个规律,就是一般出现的少的那个是控制流,所以我们点开8.222xxx.js出现的地方

    进来点一下看一下 一个异步请求 一共四个,大概能猜到就是e0,1,2,3,但是还是调试一下 打个断点然后继续往下看then,先从最开始断然后往下看,发现里面有两个parse 解析。

    行那这样就先再翻一页看看进不进断点,不管是从第一个断点一直调还是直接下去,我们发现最后都是返回了一个字符串列表

    然后再看逻辑 0x2是2,进了dS解析 0,1,3进了dH解析,我们再console.log里跑一下试试看

    发现2是css,而0,1,3就是文本内容了

    那我们追进去看一下解析方法,先是一个对象dH和dS都在里面,再进去,好这里猜测可能就是解析的方法了,方法结尾处打个断点跳一下看看。

    image.png

    我们发现 好并不是,而是嵌套的然后进到这里,打印了一下base64好后面的就不调了,解析请自己实现

    那么返回值的解析就完成了,这里复盘一下,对于异步或者说普通的请求,进出现少的那个,看头看尾(找function的域,看参数和return,看变量的大致逻辑),要对一些敏感词有了解(如then,parse,base64等等)根据逻辑走,而不是无目的单步的走,对一些方法的结果不一定要直接进去,先赋值给window再console看看(我这直接console的)符合猜想的再进去,避免耗费太多精力。

    主要是找对控制流,调对了文件就像是跟对了人。

  • 相关阅读:
    uni-app app端.m3u8类型流的播放
    【算法导论】摊还分析
    通过生产环境流量录制/线下回放 配合基于云原生的灰度发布 实现保质保量的持续集成
    一次日常需求处理带给我的思考
    elasticsearch-head连接不上es
    【优化组合】基于遗传算法求解不同投资比例的收益附matlab代码
    vite + vu3 + ts 项目,npm run build 报错
    【冰糖R语言】实现贝叶斯优化 rBayesianOptimization
    国债期货合约代码是什么字母
    面对陕西省2022年职称评审政策调整有没有好的对策
  • 原文地址:https://blog.csdn.net/paycho/article/details/132796745