抖音爬虫原理大揭秘

抖音 APP 通过读取回复消息,就知道该给我们展示哪些视频了。

但此时并没有结束,APP 还要根据返回的视频 ID,额外做两次 HTTP 请求,以获得需要展示的视频数据和缩略图信息,这样才能真正给我们展示首页推荐视频。

3. HTTP 包到底长什么样?

小伙伴们读到这里,应该明白整个抖音数据的请求流程了。俗话说纸上得来终觉浅,我们就以抖音点赞为例,手把手教大家怎样抓取和查看一个真实的 HTTP 请求包。

1. 下载抓包软件

首先,需要下载 HttpCanary 抓包软件,可以从 Google Play 或者 Apkpure 里下载。安装完成后,重启手机,就可以开始抓包了。

2. 抓取点赞请求包

先打开抖音 APP,再打开 HttpCanary,开始抓取抖音数据。如下图所示:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

随便找个视频点赞,可以看到 HttpCanary 在不停的抓包。点开 HttpCanary,找带有 /aweme/v1/commit 字样的请求包:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

3. 查看 HTTP 请求包

点开请求包,可以看到,这其实是一个普通 HTTP 报文,红线部分表示需要点赞的视频 ID。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

请求信息中除了包含视频 ID 外,还包含了你的身份信息,这样抖音才知道这个视频是谁在点赞。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

然后 APP 通过查看回复消息,判断点赞请求是否成功,如果成功,就可以将视频边上的小红心点亮了。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

通过点赞数据包,我们可以清楚看到,抖音所有浏览,点赞,评论,发布视频等,其实都是通过一个个 HTTP 完成的。

4. 亲手做一个自动点赞爬虫

讲了那么多 HTTP 请求原理,对于普通小白来说,我们怎样才能做一个属于自己的爬虫呢?

其实很简单,只要照猫画虎,复制抖音 HTTP 请求,再原样发送就可以。

比如我想获取推荐视频,只要复制抖音推荐视频的 HTTP 请求,再原样发送就可以拿到推荐数据了。

本节我们就以上文中的点赞数据为例,请大家亲手做一个自动点赞的爬虫。

让我们先回到抖音,把刚才那个视频的点赞取消,这样才能看到爬虫的最终效果。

复制数据包

进入 HttpCanary,找到刚才的点赞包,点击右上角分享按钮,并选择分享 cURL,如下图所示:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

粘贴数据包

复制完成后,HttpCanary 会提示检测到一个 cURL 请求,选择执行即可。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

第一个自动点赞爬虫

可以看到,HttpCanary 发送了一模一样的点赞请求给抖音。点开查看回复数据,如果和上文的返回值一样,就表明你的点赞爬虫完成啦。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

此时回到抖音 APP,查看我喜欢的视频,就可以看到刚才取消点赞的视频又回来了。

5. 做一个更全能的爬虫

通过刚才的练习,可以看到,只要我们能原样复制抖音数据包,就可以拿到所有想要的数据。

例如,复制首页视频请求,我们就能拿到推荐视频的标题,说明,点赞数量,评论数量等各种各样的数据。

小伙伴们也许有疑问,我们怎样才能搜集全部抖音数据呢?鉴于目前抖音的火爆程度,想要全部收集完其实不太可能,也没有必要。

聪明的小伙伴一定想到了,我们只要向抖音不停发送上划请求,就可以搜集很多首页推荐数据了。

如果你想做的更全能一些,还可以复制查看单用户视频的请求,把所有热门账号的视频数据都采集下来,就基本能替代第三方数据商了。

此外,你还可以修改 HTTP 请求,比如在首页请求中修改不同的地理位置,就可以看到不同地区的推荐视频和同城视频了。

6. 抖音守护神

看到这里,相信很多小伙伴已经跃跃欲试,准备大干一番了。但是别急,程序员小哥哥们可不会轻易让你们得逞。如果大家能随意点赞评论的话,抖音生态系统早就被玩坏了。

那么难点在哪里呢?我们还是回到刚才的请求包上,仔细看下图:
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
其实抖音每一次 HTTP 请求,都会带上 x-khronos 和 x-gorgon 这两个参数。抖音会在每次请求中校验这两个参数,如果校验不通过,那么请求就无效啦。
这两个参数都干了什么呢?
第一个 x-khronos,是标识请求时间,采用 Unix 时间格式。比如 1586446631,表示离 1970 年 1 月 1 日 0 点 0 分过去 1586446631 秒,也就是 2020 年 4 月 9 日 23 点 37 分。如果抖音收到的请求时间离实际时间太远,就知道这个请求已经失效。
第二个 x-gorgon,用来校验请求合法性。如果你在请求中篡改了任何数据,比如篡改了点赞 ID,或者身份信息 (Cookie),这个请求都会被抖音查出是伪造的,就能有效防止用户乱刷数据了。
好奇宝宝们一定会问,这个 x-gorgon 是怎么算出来的呢?理论上和法律上来说,只有抖音小哥哥们才知道。不过一般情况,都是通过请求时间,请求 URL 和 Cookie 等信息综合计算得出的(以上纯属瞎猜,请遵守当地法律)。
7. 总结

简单一句话概括,只需要复制抖音 HTTP 请求,并完成 x-gorgon 校验,理论上你就可以做一个全能的抖音爬虫。不过再次提醒小伙伴们,一定要谨遵当地法律,也不要滥用爬虫给平台造成负担。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)

正体系化!**

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)

img
  • 24
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值