首页技术教程 正文

教你用 Python+Fiddler 爬取并下载抖音小姐姐视频

2023-08-01 5 0条评论
准备工作:,(1)手机(安卓、ios 都可以)/ 安卓模拟器,今天主要以安卓模拟器为主,操作过程一致。,( 2 ) 抓包工具:Fiddel 下载地址:, https:// www.telerik .com/download/fiddler,(3)编程工具:pycharm,一、fiddler 配置,在 tools 中的 options 中,按照图中勾选后点击 Actions,选择允许监控远程链接,端口可以随意设置,只要别重复就行,默认 8888,二、安卓模拟器 / 手机配置,首先查看本机的 IP:在 cmd 中输入 ipconfig,记住这个 IP,手机配置:配置已连接的 WiFi,代理选择手动,然后输入上图 ip 端口号为 8888,模拟器配置:设置中长按已连接 wifi,代理选择手动,然后输入上图 ip 端口号为 8888,证书名称随便设,可能还需要设置一个锁屏密码。,三、抖音抓包,打开抖音,然后观察 fiddler 中所有的包,1、视频数量,每个包中只有这么几个视频,那如何抓取更多呢?,这时候需要借助模拟器的模拟鼠标翻页,让模拟器一直翻页,这样就不断会出现 json 包了。,一种方法可以手动复制粘贴,但是这样很 low。,所以我们使用 fidder 自带的 脚本,在里面添加规则,当视频 json 包刷出来后自动保存 json 包。,自定义规则包:,链接:https://pan.baidu.com/s/1wmtUUMChzuSDZFYGSyUhCg,提取码:7z0l,点击规则脚本,然后将自定义规则放在如图所示位置:,(1)第一行的网址:,这个是从视频包的 url 中摘出来的,抖音会时不时更新这个 url,所以不能用了也要去更新:,比如现在的已经和昨天不同了,记着修改。,接下来在 pycharm 中写脚本获取 json 包里的视频链接:,导包:,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,本文来自精品专栏《爬虫案例合集》,

准备工作:

(1)手机(安卓、ios 都可以)/ 安卓模拟器,今天主要以安卓模拟器为主,操作过程一致。

( 2 ) 抓包工具:Fiddel 下载地址:

https://www.telerik.com/download/fiddler

(3)编程工具:pycharm

一、fiddler 配置

在 tools 中的 options 中,按照图中勾选后点击 Actions

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

二、安卓模拟器 / 手机配置

首先查看本机的 IP:在 cmd 中输入 ipconfig,记住这个 IP

手机配置:配置已连接的 WiFi,代理选择手动,然后输入上图 ip 端口号为 8888

模拟器配置:设置中长按已连接 wifi,代理选择手动,然后输入上图 ip 端口号为 8888

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

三、抖音抓包

打开抖音,然后观察 fiddler 中所有的包

1、视频数量,每个包中只有这么几个视频,那如何抓取更多呢?

这时候需要借助模拟器的模拟鼠标翻页,让模拟器一直翻页,这样就不断会出现 json 包了。

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

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

自定义规则包:

链接:https://pan.baidu.com/s/1wmtUUMChzuSDZFYGSyUhCg

提取码:7z0l

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

(1)第一行的网址:

这个是从视频包的 url 中摘出来的,抖音会时不时更新这个 url,所以不能用了也要去更新:

比如现在的已经和昨天不同了,记着修改。

接下来在 pycharm 中写脚本获取 json 包里的视频链接:

导包:

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

本文来自精品专栏《爬虫案例合集》


文章版权及转载声明

本文作者:亿网 网址:https://edns.com/ask/post/25173.html 发布于 2023-08-01
文章转载或复制请以超链接形式并注明出处。