打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
python爬取抖音小视频

准备工作:
(1)、手机(安卓、ios都可以)/安卓模拟器,今天主要以安卓模拟器为主,操作过程一致。
(2)、抓包工具:Fiddel 下载地址:(https://www.telerik.com/download/fiddler
(3)、编程工具:pycharm
(4)、安卓模拟器/手机安装上抖音

一、fiddler配置
在tools中的options中,按照图中勾选后点击Actions


配置远程链接:
选择允许监控远程链接,端口可以随意设置,只要别重复就行,默认8888

然后:重启fiddler!!!这样配置才能生效。

二、安卓模拟器/手机配置
首先查看本机的IP:在cmd中输入ipconfig,记住这个IP


手机确保和电脑在同一局域网下。
手机配置:配置已连接的WiFi,代理选择手动,然后输入上图ip端口号为8888
模拟器配置:设置中长按已连接wifi,代理选择手动,然后输入上图ip端口号为8888


代理设置好后,在浏览器中输入你设置的ip:端口,例如10.10.16.194:8888,就会打开fiddler的页面。然后点击fiddlerRoot certificate安装证书,要不手机会认为环境不安全。

证书名称随便设,可能还需要设置一个锁屏密码。


接下来就可以在fiddler中抓到手机/模拟器软件的包了。
三、抖音抓包
打开抖音,然后观察fiddler中所有的包

其中有个包,包类型为json(json就是网页返回的数据,具体百度),主机地址如图,包大小一般不小,这个就是视频包。

点击这个json包,在fidder右侧,点击解码,我们将视频包的json解码

解码后:点击aweme_list,其中每个大括号代表一个视频,这个和bilibili弹幕或者快手一样,每次加载一点出来,等你看完预加载的,再重新加载一些

接下来解决几个问题,
1、视频数量,每个包中只有这么几个视频,那如何抓取更多呢?
这时候需要借助模拟器的模拟鼠标翻页,让模拟器一直翻页,这样就不断会出现json包了。

2、如何json保存在本地使用

一种方法可以手动复制粘贴,但是这样很low。

所以我们使用fidder自带的脚本,在里面添加规则,当视频json包刷出来后自动保存json包。

自定义规则包:
链接:https://pan.baidu.com/s/1wmtUUMChzuSDZFYGSyUhCg

点击规则脚本,然后将自定义规则放在如图所示位置:


这个脚本有两点需要修改的:
(1)第一行的网址:
这个是从视频包的url中摘出来的,抖音会时不时更新这个url,所以不能用了也要去更新:
比如现在的已经和昨天不同了,记着修改。

(2)路径,那个是我设置json包保存的地址,自己一定要去修改,并创建文件夹,修改完记着点保存。

打开设置好模拟器和脚本后,等待一会,就可以看到文件夹中保存的包了:

四、爬虫脚本

接下来在pycharm中写脚本获取json包里的视频链接:
导包:
import os,json,requests
伪装头:(f12获取,具体怎么获取的参考上一篇爬虫图文)
headers = {‘User-Agent’: ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36’}
逻辑代码:


运行代码:

效果:

源码:

import os,json,requests#伪装头headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36'}videos_list = os.listdir('C:/Users/HEXU/Desktop/抖音数据爬取/抖音爬取资料/raw_data/')  #获取文件夹内所有json包名count = 1  #计数,用来作为视频名字for videos in videos_list:  #循环json列表,对每个json包进行操作    a = open('./抖音爬取资料/raw_data/{}'.format(videos),encoding='utf-8')  #打开json包    content = json.load(a)['aweme_list'] #取出json包中所有视频    for video in content:  #循环视频列表,选取每个视频        video_url = video['video']['play_addr']['url_list'][4] #获取视频url,每个视频有6个url,我选的第5个        videoMp4 =  requests.request('get',video_url,headers=headers).content #获取视频二进制代码        with open('./抖音爬取资料/VIDEO/{}.mp4'.format(count),'wb') as f: #以二进制方式写入路径,记住要先创建路径            f.write(videoMp4)  #写入            print('视频{}下载完成'.format(count)) #下载提示        count += 1 #计数+1
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Fiddler抓取抖音APP视频源
用fidder抓包分析抖音视频获取用户信息,python脚本和按键精灵脚本的运用
电脑常识Android逆向分析实例(四)-米读极速版日志植入
利用Fiddler抓包解析,轻松下载m3u8格式网络视频
爬取抖音数据实践方案《基础版》
项目实战:爬App数据
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服