Python Fiddler 钉钉PC端群回放视频爬取

Python Fiddler 钉钉PC端群回放视频爬取

钉钉群里的回放视频被群管理员设置为不能下载,可是有时候又需要这些视频可以方便传阅和打开调倍速等等,而且还可以不用再打开PC端就可以直接看到视频多好啊,不过这该怎么下载呢?
在这里插入图片描述
一、Fiddler 抓包
1、首先要明白一个道理,只要是你能在电脑上看到听到的数据,这些数据都应该在你电脑存在过,即这些数据是可以访问和爬取的,这就是爬虫中的“可见即可爬”。不过至于爬不爬得到数据就看方法和技术了。

Fiddler也被叫作“小提琴”,引用百度百科的说法:
“Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指cookie,html,js,css等文件)。 Fiddler 要比其他的网络调试器要更加简单,因为它不仅仅暴露http通讯还提供了一个用户友好的格式。”

Fiddler是应用比较广泛的抓包利器,下载的话去网上一搜到官网下载就行,配置和一些问题的解决可以参考这篇文章:网络爬虫中Fiddler抓取PC端网页数据包与手机端APP数据包

2、开始抓包,先打开钉钉的PC端,
然后打开Fiddler,希望在这一步之前你已经配置好Fiddler的一些设置了,不然抓包错误也是有可能的。
接下来就直接点开待下载的视频就好了,坐等Fiddler抓包。
在这里插入图片描述
注意左下角的捕获按钮,保持这个状态。
如果Fiddler界面太杂可以清除会话,右键弹出菜单,跟着图示所选清除会话,然后重新点开视频进行抓包。
在这里插入图片描述
抓包结果就会是下图所示,红框里的就是我们需要的视频链接
在这里插入图片描述
我们右键这个返回内容为video文件的链接,然后复制这个链接的URL,如下图所示
在这里插入图片描述
你将整个链接放到浏览器去访问来验证一下,正确的话会下载一个ts文件,这个ts文件就是视频的一个小片段。必要一提,MP4等格式的视频在传输过程中大多都是分段传输到我们电脑中的,若干个ts文件组成了一整个MP4文件,这也是为什么我们看视频的时候会出现“正在缓冲”的问题。
后面我们用循环来遍历下载每个ts文件,在此之前你应该关闭之前提到的“捕获中”的按钮,因为Fiddler的存在会改变网络协议,导致爬虫中requests不能访问网页。

二、ts视频片段爬取
观察我们获取到的链接,就会发现链接中有个1.ts这个项,因为是同个视频的ts文件,也就是说整个链接都是不变的,变的只有.ts前面的编号而已。

import requests
import os

headers = {
    'User-Agent': # 自行添加
}
path = "" #文件夹名称
os.makedirs(path, exist_ok=True) # 自动创建文件夹
index = 1
while True:
    url = 'https://xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/{}.ts?auth_key=\
    xxxxxxxxx-x-x-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'.format(index)
    res = requests.get(url, headers=headers)
    if len(res.content) < 500: # 当爬取到的ts文件无效时退出循环,可以自己按情况调整大小,
    #这里我爬取的ts视频大多是31秒左右,大小在500K到1.5M之间,故我设置大小在500K一下为无效文件
        break
        
    # 将视频片段都放置到一个文件夹方便后期拼接
    with open(path + "/%04d.ts" % index, "wb")as f:
    #这里注意文件名的命名,因为我爬取的ts片段不会超过三位数,所以我将其命名为4位数的ts文件
    #这么做是为了方便后面拼接时视频顺序不要出错
        f.write(res.content)
    index += 1

三、视频拼接
在视频文件夹的对应框输入cmd,然后回车,可以直接进入当前文件夹目录。
在这里插入图片描述
输入下图指令进行拼接
在这里插入图片描述
copy指的是复制文件然后*.ts 代表此文件夹里的所有文件,然后新文件存为new.mp4,这里new.mp4可以自行更改。命令格式是copy+空格+/b +空格+*.ts+空格+文件名(如:new.mp4)

大功告成了,在下载中可能会比较慢,就跟我们平时下载视频速度差不多,可能会稍微快一点,毕竟是直接访问视频链接的,改进方面可以加入多线程,可以提高下载速度。
喜欢就点个赞吧!

  • 13
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值