博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
「docker实战篇」python的docker- 抖音视频抓取(上)(24)
阅读量:6279 次
发布时间:2019-06-22

本文共 1722 字,大约阅读时间需要 5 分钟。

原创文章,欢迎转载。转载请注明:转载自,谢谢!

原文链接地址:

上节主要说了通过多模拟器的并行进行数据的抓取,在没有docker环境的情况下,本次主要针对抖音的视频数据进行抓取,无论你是个人喜好,还是项目需求,大家对抖音的视频数据都很感兴趣,比如喜欢那个漂亮的小姐姐都想把他的视频保存下来,方便日后的观看,慢慢的膝上。上次说的appium完成抖音粉丝数据的抓取其实也可以完成抖音视频数据的抓取,抓取的思路也是想通,通过mitmdump进行数据解析,appium模拟滑动。如果一台设备抓取比较慢,可以用多台模拟器来进行抓取。这次主要用的另一种方式来进行抓取。

(一)分析分享页面

谷歌浏览器打开:

  • 1.1刷新页面

按照图例步骤查看返回的数据

url地址:

  • 1.2 json.cn中查看返回的数据格式

1.2.1返回了10条

1.2.2发现解析发现

1.2.3 打开

1.2.4 也就是通过 可以获取视频的地址

1.2.5 解析里面的参数

https://www.douyin.com/aweme/v1/aweme/post/?user_id=89923219116&count=21&max_cursor=0&aid=1128&_signature=4vFoMhAYvqksmu7gHnkAsuLxaC&dytk=2be712bf2e309b4b7947b459667ea3a1复制代码

1.2.6里面一共6个参数

user_idcountmax_cursoraid_signaturedytk复制代码

1.2.7 下一步就是找到这6个参数的缘由从哪里获取到的。

肯定有老铁问,既然地址就知道了,直接用地址获取不完了,那么麻烦干啥? 我来截图解密,因为url地址是有时效性的

1.2.7.1 user_id 是url中的最后一个字段,可以直接获取

1.2.7.2 count 直接写死 21

1.2.7.3 max_cursor 直接写死 0,获取写时间戳

1.2.7.4 aid 直接写死 1128

1.2.7.5 dytk 直接可以通过页面获取,通过正则表达式

1.2.7.6 _signature 比较麻烦,这里一起分析下

1.2.7.6.1 查询_signature的信息,搜索:_signature

1.2.7.6.2 点击搜索出来的2个文件中的第一个,然后按照我说的步骤点击

1.2.7.6.3 输入ctrl+f 输入_signature 查询,发现_signature = signature 通过signature赋值过来的。

1.2.7.6.4 signature 查找出来3个地方

初始化

赋值signature

1.signature = _bytedAcrawler.sign(nonce),

2.nonce 其实就是user_id,user_id在页面已经获取到了
3.需要了解下_bytedAcrawler.sign

1.2.7.6.5 _bytedAcrawler 怎么来的,在通过ctrl+f

_bytedAcrawler = require("douyin_falcon:node_modules/byted-acrawler/dist/runtime")

1.2.7.6.5 douyin_falcon:node_modules/byted-acrawler/dist/runtime 又是怎么来的

1.2.7.6.6 点击查找 douyin_falcon:node_modules/byted-acrawler/dist/runtime 对应的文件,发现是通过这个方法。还混淆了。

1.2.7.6.7 下图箭头处【双击】 就可以将源码里面的混淆,进行浏览器的解析成为代码。

1.2.7.6.8 下面的是高混淆的,无法解密的。

1.2.6.9 了解__M的源码,经过分析(具体咋分析,根据名称经验和代码),找到base.js原来就是__M的定义

PS:下一步说说解析这块,如何破解获取到_signature

转载于:https://juejin.im/post/5d06e91e5188253618170686

你可能感兴趣的文章
iOS 多线程总结
查看>>
webpack是如何实现前端模块化的
查看>>
TCP的三次握手四次挥手
查看>>
关于redis的几件小事(六)redis的持久化
查看>>
package.json
查看>>
webpack4+babel7+eslint+editorconfig+react-hot-loader 搭建react开发环境
查看>>
Maven 插件
查看>>
初探Angular6.x---进入用户编辑模块
查看>>
计算机基础知识复习
查看>>
【前端词典】实现 Canvas 下雪背景引发的性能思考
查看>>
大佬是怎么思考设计MySQL优化方案的?
查看>>
<三体> 给岁月以文明, 给时光以生命
查看>>
Android开发 - 掌握ConstraintLayout(九)分组(Group)
查看>>
springboot+logback日志异步数据库
查看>>
Typescript教程之函数
查看>>
Android 高效安全加载图片
查看>>
vue中数组变动不被监测问题
查看>>
3.31
查看>>
类对象定义 二
查看>>
收费视频网站Netflix:用户到底想要“点”什么?
查看>>