【电脑版本】小伙伴们期待已久的抖音爬虫来啦!

作者 : icbug 发布时间: 2020-06-7 文章热度:561 共2963个字,阅读需8分钟。 手机浏览
本文缺点:无法去水印对视频进行下载

准备材料:

  • Google Chrome

  • 夜神模拟器

启动夜神模拟器:

文章地址:

https://icbugblog.cn/cid=101/

如下图:

【电脑版本】小伙伴们期待已久的抖音爬虫来啦!-icbug创客

然后我们去官网下载一个抖音

https://www.douyin.com/

【电脑版本】小伙伴们期待已久的抖音爬虫来啦!-icbug创客

点击安装

【电脑版本】小伙伴们期待已久的抖音爬虫来啦!-icbug创客

【电脑版本】小伙伴们期待已久的抖音爬虫来啦!-icbug创客

正常使用

【电脑版本】小伙伴们期待已久的抖音爬虫来啦!-icbug创客

首先我们选择一个作者打开它的主页面

例如

【电脑版本】小伙伴们期待已久的抖音爬虫来啦!-icbug创客

我们这样操作

【电脑版本】小伙伴们期待已久的抖音爬虫来啦!-icbug创客

【电脑版本】小伙伴们期待已久的抖音爬虫来啦!-icbug创客

得到的链接如下

https://v.douyin.com/JeyHvTm/

我们回来用Chrome打开

如下图

我们可以看到一个重定向的链接

【电脑版本】小伙伴们期待已久的抖音爬虫来啦!-icbug创客

https://www.iesdouyin.com/share/user/104997217592?sec_uid=MS4wLjABAAAAYXYEhhUJ6b0qkg4P7pvp2Ea7VSLXYAbRtSiHTFEDvls&timestamp=1591351656&utm_source=copy&utm_campaign=client_share&utm_medium=android&share_app_name=douyin

然后这个页面作为初始获取数据的页面,那么下一步就是获取我们的小饰品

如果你直接再我们刚才的Chrome页面端上始终会让你下载这个抖音软件

跳转回

【电脑版本】小伙伴们期待已久的抖音爬虫来啦!-icbug创客

然后我们这里还是需要模拟器,来获取我们的视频链接

【电脑版本】小伙伴们期待已久的抖音爬虫来啦!-icbug创客

找到复制链接

点击复制

得到内容如下

来自美术教室的惊喜(下续)#这个视频有点料 https://v.douyin.com/JeyxNYP/ 复制此链接,打开【抖音短视频】,直接观看视频!

然后把这个视频的链接复制到Chrome的浏览器来看看

得到界面如下

【电脑版本】小伙伴们期待已久的抖音爬虫来啦!-icbug创客

那么他这个一样是重定向链接

https://www.iesdouyin.com/share/video/6811397272916561155/?region=CN&mid=6811389540717054723&u_code=0&titleType=title&utm_source=copy_link&utm_campaign=client_share&utm_medium=android&app=aweme

正常来说请求第一种链接https://v.douyin.com/wGqCNG/和第二种重定向之后的链接都可以获取到信息,但是我发现第一种链接地址是找不到规律的,所以我猜测第二种网址的规律会更加的好找,先把链接地址复制到记事本中

【电脑版本】小伙伴们期待已久的抖音爬虫来啦!-icbug创客

那么这么长的一个链接肯定起到了干扰作用,我们试着简化一下链接

简化如下

https://www.iesdouyin.com/share/video/6811397272916561155/?mid=6811389540717054723

【电脑版本】小伙伴们期待已久的抖音爬虫来啦!-icbug创客

效果也是一样的

【电脑版本】小伙伴们期待已久的抖音爬虫来啦!-icbug创客

当然一个肯定看不出规律

我又找三个视频的链接进行分析

简化完成如下图

【电脑版本】小伙伴们期待已久的抖音爬虫来啦!-icbug创客

现在我们可以开始进行观察了

https://www.iesdouyin.com/share/video/6811397272916561155/?mid=6811389540717054723
https://www.iesdouyin.com/share/video/6833670208788368652/?mid=6833670314611329800
https://www.iesdouyin.com/share/video/6833348557001526535/?mid=6833348588815321869

不难发现,只不过是他的这个请求作品mid=xxx的值变了罢了

然后我们返回一开始的这个作者页面

【电脑版本】小伙伴们期待已久的抖音爬虫来啦!-icbug创客

然后我们来看一下date_id

把上面mid的值到开发者工具栏中进行搜索,但万万没想到的是这个id根本找不到,那么换一种方式进行思考,这个是不是随机生成的呢?

然而...

我惊奇的发现我们把后面的mid=换了id后一样是这个视频,效果如下图

如下动图所示

【电脑版本】小伙伴们期待已久的抖音爬虫来啦!-icbug创客

由此可见,我们需要从这个id构造开始分析,我们还是返回作者的这个页面

【电脑版本】小伙伴们期待已久的抖音爬虫来啦!-icbug创客

那么我们现在进行一下我们的network抓包,刷新页面

然后查看一下XHR如下图

【电脑版本】小伙伴们期待已久的抖音爬虫来啦!-icbug创客

点击Preview

【电脑版本】小伙伴们期待已久的抖音爬虫来啦!-icbug创客

【电脑版本】小伙伴们期待已久的抖音爬虫来啦!-icbug创客

那么这里有一个很奇怪的数据包需要我们进行查看查找,可以看到这个有14个加载出来的数据,那么这个作者有177个作品,那么其他作品去哪里了呢?

我们继续探究,我们把这个页面拖到最后又加载出来了几个数据包,说明了这个是一个动态加载的东西

【电脑版本】小伙伴们期待已久的抖音爬虫来啦!-icbug创客

无论你抓取的作者刷新出来几个,然后我们现在随机选择一个数据包来看看

【电脑版本】小伙伴们期待已久的抖音爬虫来啦!-icbug创客

注意写代码的时候有一个东西是必须注意的:

那就是我们的user_agent这个就相当于我们浏览器的身份证,如果你不给他这个信息很有可能就被屏蔽了,那么我们的这个抖音肯定是有这个的

【电脑版本】小伙伴们期待已久的抖音爬虫来啦!-icbug创客

【电脑版本】小伙伴们期待已久的抖音爬虫来啦!-icbug创客

开始写代码:

import requests
import json

class Douyin:
    def page_num(self,max_cursor):
        #网址后面的随机参数(我实在分析不出规律)
        random_field = '-.NwcBAVpTMTKVIN9tYXI.vzcG&dytk=e8941d87239ebe6eec9494a051dd03e7'
        #网址的主体
        url = 'https://www.iesdouyin.com/web/api/v2/aweme/post/?sec_uid=MS4wLjABAAAAYXYEhhUJ6b0qkg4P7pvp2Ea7VSLXYAbRtSiHTFEDvls&count=21&max_cursor=1557567997000&aid=1128&_signature=' + random_field
        #请求头
        headers = {
            'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36‘,
        }
        response = requests.get(url,headers=headers).text
        #转换成json数据
        resp = json.loads(response)
        #遍历
        for data in resp["aweme_list"]:
            # id值
            video_id = data['aweme_id']
            # 视频简介
            video_title = data['desc']
            # 构造视频网址
            video_url = 'https://www.iesdouyin.com/share/video/{}/?mid=1'
            # 填充内容
            video_douyin = video_url.format(video_id)
            print(video_id)
            print(video_title)
            print(video_douyin)

if __name__ == '__main__':
     douyin = Douyin()
     douyin.page_num()

注意这个数据包会定时随机刷新,所以这个东西可能等到你用的时候就会报错了

下一篇文章讲一下代码如何写,欢迎关注!

然后后期也是研究一下这个自动数据包抓包的一些方法的!

常见问题FAQ

本站资源是否全部免费?
本站文章和普通速度下载资源免费,高速下载资源和讲解视频需要成为SVIP才能查看哦!
本站采用标准 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明!
icbug创客 » 【电脑版本】小伙伴们期待已久的抖音爬虫来啦!

2 评论

  1. 签到成功!签到时间:2020-06-09 18:21:55,每日打卡,生活更精彩哦~

  2. 6666

发表评论

CAPTCHAis initialing...