• 【微信读书】数据内容接口逆向调试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的)符合猜想的再进去,避免耗费太多精力。

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

  • 相关阅读:
    15.关注模块——peewee创建模型、tornado-peewee-async查询增加删除接口
    微信支付回调,内网穿透详细过程
    怎么直连某个服务器的dubbo服务
    【无标题】数字孪生技术即神器而又象征着未来的点滴
    【Unity设计模式】观察者模式,发布订阅模式,事件总线
    吴军《浪潮之巅》阅读随笔(一)
    一文看懂拉格朗日乘子法、KKT条件和对偶问题
    Python爬虫教程:如何爬取教育漏洞报告平台中的漏洞报告?
    el-select组件绑定change怎么获取label和value值
    Verilator: sh: 1: exec: < PATHNAME >: not found
  • 原文地址:https://blog.csdn.net/paycho/article/details/132796745