抖音_signature参数分析

以抖音作者页为例:https://www.iesdouyin.com/share/user/xxx

从接口可以得到作者发布的视频列表:
https://www.iesdouyin.com/web/api/v2/aweme/post/?user_id=xxx&sec_uid=&count=21&max_cursor=0&aid=1128&_signature=etVQHxATJIUJI1pwOqp2dnrVUA&dytk=dd51884f959fa649020e74cbd09044e0

参数里dytk从作者页抽取得到,_signature参数为js生成,打断点找到_signature的生成位置

抖音_signature参数分析_第1张图片

抖音_signature参数分析_第2张图片

nonce就是作者id,找到_bytedAcrawler的生成位置。
抖音_signature参数分析_第3张图片
抖音_signature参数分析_第4张图片

再找__M的生成位置
抖音_signature参数分析_第5张图片

验证找到的地方是否正确:
在console中调用对应的生成方法

dycs = __M.require("douyin_falcon:node_modules/byted-acrawler/dist/runtime") ;

signc = dycs.sign(作者id)

这时候会发现signc与接口中的_signature字段一致。
因此讲__M生成部分的代码define sign那一块的代码都贴到一个html里。并预先写入一个作者id打印出对应的signature。如果直接打开html会发现与实际的_signature有出入,因此可以好好看看有没有哪块js给window对象赋值了。

最后html加入该参数就能拿到正确的_signature字段。

你可能感兴趣的:(爬虫,python)