众所周知,某音短视频是没有提供下载链接的,视频号也没下载链接,但我就想下载下来,还有视频下面的评论我也想拿到,那要肿么办呢?其实播放链接和评论是可以拿到的,我来细细道来
文章目录
- 抓包
- 技术提升
- 获取评论
- 安装证书
- 设置代理
抓包
通过 mitmproxy 进行抓包
在 windows 上直接使用 pip 安装即可
我们先看效果,代理配置和证书安装放到最后,要不搞半天还在安装,很占篇幅
它是一个抓包工具,支持python脚本:
mitmdump -s test.py #安装mitmproxy完就有mitmdump命令
通过该抓包工具,可以获取所有链接。
链接是有特征的,比如
-
某音视频链接一般匹配
web.douyinvod.com
-
微信视频号匹配
video.qq.com
-
某音视频下的评论匹配
v1/web/comment/list
所以要下载哪个,替换 if
中的匹配条件就好了:
#匹配某音短视频的评论
import json
def response(flow):
if 'v1/web/comment/list' in flow.request.url:
for comment in json.loads(flow.response.text)['comments']:
print('nice111',comment['text'])
我在某音发布了一个视频,一直想把它下载下来
那就执行脚本
def response(flow):
if 'web.douyinvod.com' in flow.request.url:
print('nice111',flow.request.url)
刷新视频,就会出现视频链接
可以使用 you-get 下载,或者通过脚本把链接写入文件,刷一个视频,脚本就自动把链接存储好。
这样就下载到本地了:
视频下载方法同样如此,换个条件即可
技术提升
本文由技术群粉丝分享,项目源码、数据、技术交流提升,均可加交流群获取,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友
方式①、添加微信号:dkl88191,备注:来自CSDN
方式②、微信搜索公众号:Python学习与数据挖掘,后台回复:加群
获取评论
同理,换汤不换药,替换 if
条件
import json
def response(flow):
if 'v1/web/comment/list' in flow.request.url:
for comment in json.loads(flow.response.text)['comments']:
print('nice111',comment['text'])
选择一个短视频,打开评论,出现数据
好了,剩下的就简单了,相信聪明的你们一定都会啦!
最后我们再介绍环境配置,证书安装和配置代理的内容
安装证书
pip 安装 MitmProxy 后,还不能拦截到数据,这是因为我们没有安装证书和打开对应的监听窗口。
windows 平台的证书其实在我们装 mitmproxy 的时候系统已经自动下载了。
安装路径在我们的 C:\Users\用户名\ .mitmproxy
下,p12 结尾的证书就是 windows 平台下的
双击mitmproxy-ca.p12,进入证书导入向导。
傻瓜式安装,下一步就行
注意这里的密码填空就行了。
下一步将证书放入下列存储选项中,选择受信任的根证书颁发机构
点击完成,证书就导入到当前用户\计算机的根证书存储里面了
设置代理
打开代理,并且端口号为Proxy监听的端口号8080(手机端的安装配置与其类似),这时候重启mitmweb,可以看到下图所示,抓到本机发出的请求flow(流)了