当前位置:淡墨SEO首页 > SEO工具 > 某讯视频用python解析数据并下载视频mp4格式

某讯视频用python解析数据并下载视频mp4格式

admin2年前 (2022-10-01)SEO工具7470

国庆祝福祖国生日快乐。偶尔间,想做做视频剪辑,需要下载视频素材,但是在平台上的视频似乎不支持手动下载。自然学了python,可以试着用代码去下载视频,在这块找到相应的教学内容,本次内容主要是分享用python如何去获取下载某讯视频。下面为大家讲解一下。


就拿最近比较火的昆仑神宫来做下视频解析下载,首先是打开网页版的腾讯视频。通过测试发现这个ts文件就是视频片段。就是我们需要下载的视频数据

image.png


不过这个地址是一个拼接地址,我们要先获取视频的拼接字段。这个就是需要获取的拼接字段。

image.png



可以发现这个拼接字段就是视频的片段,那么只要找到这个字段获取接口就行了。这就是视频的接口了。


image.png


在代码中我们进行模拟请求

def spiderIndex():
url = 'https://vd6.l.qq.com/proxyhttp'
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36',
'Cookie': 'RK=2YvZ9H2FTa; ptcz=1b68ca958b61f0640e1514e58e4bfa3b737a4bc3270f19eaa18d830752000e87; ptui_loginuin=649307714@qq.com; pgv_pvid=1666049471; _clck=3944290737|1|f4o|0; tvfe_boss_uuid=e776055103157d8d; appuser=9C1476C01B8D3CAC; lv_play_index=4; o_minduid=pFcsCshCv2RhT6TqeBACWGaGa2DNlzs0; vversion_name=8.2.95; www_omgid=8e51da136961c52f; pgv_info=ssid=s9431282696; LPPBturn=142; LZTturn=480; ufc=r24_1_1664723257_1664637037; LPVLturn=449; LPSJturn=408; LCZCturn=692; LVINturn=182; LPHLSturn=284; LDERturn=160; LPDFturn=22'
}
data = {"adparam":"pf=in&pf_ex=pc&pu=1&pt=0&platform=10901&from=0&flowid=10d3a06bd590587626c4a14d675c462d&guid=8e51da136961c52f&coverid=mzc002000pcdwox&vid=u00445z1gcx&chid=0&tpid=2&refer=&url=https%3A%2F%2Fv.qq.com%2Fx%2Fcover%2Fmzc002000pcdwox%2Fu00445z1gcx.html&lt=qq&opid=B1691D752D68898B6CB03F1C37943B28&atkn=819BE5322FB8FA8BBD7FC926CD0E883C&appid=101483052&uid=565401408&tkn=cOp6IaTofj-_d322aK7gKA.N&rfid=933adbce14d7b65786633cf13150dd01_1664522169&v=1.7.0&vptag=&ad_type=LD%7CKB%7CPVL&live=0&appversion=1.5.4&ty=web&adaptor=1&dtype=1&resp_type=json&s_img=webp",
"buid":"vinfoad",
"vinfoparam":"charge=0&otype=ojson&defnpayver=7&spau=1&spaudio=64&spwm=1&sphls=2&host=v.qq.com&refer=https%3A%2F%2Fv.qq.com%2Fx%2Fcover%2Fmzc002000pcdwox%2Fu00445z1gcx.html&ehost=https%3A%2F%2Fv.qq.com%2Fx%2Fcover%2Fmzc002000pcdwox%2Fu00445z1gcx.html&sphttps=1&encryptVer=8.1&cKey=802F458EC052379B56152C578E14E490FC2FD062DD0AB2FCA43AF8C40027308B4629214745732BD518AA0875C9569B6B84BC97DB4513041EB03BCFCC6D14771065273D54F7E2EF9334CEABBECA32A4D351719DD450611949B0C342570B2163872AB8D049A9EE75355F511569A6838296CD24F3DE3FA6C4A0D5E938802656F54ED2A69A4AAD2EA0B720E391E876BF02E3EB6BEB2D6C5362B702C7E4F962882F0CDBEFA8B56DD28047AD56D29799010A2955AEB4122ABB79465ABB601D5E948F3D9CEFF2687DD620982EEEC5F0CB72A57D&clip=4&guid=8e51da136961c52f&flowid=0522a8876f3d5fa03be5a175b4c0e1a3&platform=10901&sdtfrom=v1010&appVer=3.5.57&unid=&auth_from=&auth_ext=&vid=u00445z1gcx&defn=&fhdswitch=0&dtype=3&spsrt=2&tm=1664638869&lang_code=0&logintoken=%7B%22access_token%22%3A%22819BE5322FB8FA8BBD7FC926CD0E883C%22%2C%22appid%22%3A%22101483052%22%2C%22vusession%22%3A%22Tfr_izUS-a3jBXGcQrO5-g.N%22%2C%22openid%22%3A%22B1691D752D68898B6CB03F1C37943B28%22%2C%22vuserid%22%3A%22565401408%22%2C%22www_guid%22%3A%228e51da136961c52f%22%2C%22main_login%22%3A%22qq%22%7D&spvvpay=1&spadseg=3&spav1=15&hevclv=28&spsfrhdr=100&spwww=4&spm3u8tag=67&spmasterm3u8=3&drm=40"
}
resp = requests.post(url=url,headers=headers,json=data)
# print(resp.json()['vinfo'])
vinfo = resp.json()['vinfo']
return eval(vinfo)


经过响应后获取到的json数据


image.png

接下来我们对json数据进行解析获取视频地址字段。

def parseJson(info):
m3u8_data  = info['vl'] ['vi'][0]['ul']['m3u8']
m3u8_data = re.sub(r'#E.*', '', m3u8_data).split()
print(m3u8_data)
return m3u8_data

image.png


最后对图片1的地址进行拼接成完整地址,然后进行请求获取字节流数据并保存为视频mp4格式

def main():
info = spiderIndex()
items = parseJson(info)
# print(items)
for ts in tqdm(items):
ts_url = 'https://apd-af0ad8ebcf60efe082459590668c79cd20857437bcbe6769.v.smtcdns.com/moviets.tc.qq.com/AQxYvBGijPcvDFbmnZR-mW3FBthNmbw5Tsj7QIVYfTT0/uwMROfz2r55ggaQXGdGnC2de5GryTJ3wTQg5cEoxzm7irTT1/svp_50112/89pevnZgGuf9qsaNm-ZpTCoRipcLQNBi8jJFH0jfbATCVkALe0kjzufGlzZQOJxxvuwbUIZV6R-yoX5KWn5Q2vf1sN7ZeWFpCCbpdKisCkfUt3qcgky8X9Oj56e2WA9OzrfWuygKCBDAnYGAVqo8x6SdWygvKED-im-7B-tacSo/' + ts
# print(ts_url)
ts_content = requests.get(url=ts_url).content
with open('昆仑神宫.mp4', mode='ab') as f:
f.write(ts_content)
print('下载完成')


image.png


然后下载完成后,我们找到这个视频进行播放测试

image.png


image.png


附加,国庆期间,快排源码和网页系统以及其他软件源码都8折优惠,有需要的可以私信我。

声明:所有文章只做编程技术知识分享,不可非法用途使用,任何非法用途与本人无关。

扫描二维码推送手机访问

文章内容均为原创,禁止转载!

本文链接:http://www.seoyiwu.com/news/18.html

标签: python爬虫

相关文章

多线程发包模拟点击软件界面运行

多线程发包模拟点击软件界面运行

前段时间写了一个模拟点击源码,以及网页系统的对接。在运行方面需要先安装python环境以及搭建网页和数据库,方可进行运行。这种方式比较复杂,不适合个人去使用,这次主要是做了一个qt软件,将源码进行封装,这样我们就不需要安装环境了,直接一键运行即可。下面是软件的简单界面,纯属个人简单设计(高手路过)在...

某163企业邮箱js逆向登录解析

某163企业邮箱js逆向登录解析

平时我们发邮件时,如果用网页端发送邮件那么就需要登录,登录之后需要手动进行邮件发送的一些操作。如果我们用python逆向登录后,就可以在用接口模拟网页进行邮件的发送。问题主要是解决逆向登录,那么后面发送只要保持cookie就可以调用接口发送了。下面讲解一下逆向登录原理。首先是登录企业邮箱网页地址然后...

百度站长二级域名批量添加

百度站长二级域名批量添加

接上一篇文章,这次将百度二级域名批量单独封装exe软件,进行一个批量添加操作。在正常页面进行二级域名绑定的时候,需要进行三步:1、输入网站,2、属性设置,3、文件验证。视频演示1、输入网站过旋转2、站点属性设置3、验证网站如果想做一个批量添加操作,每次都手动的话,未免会比较麻烦,这时可以用代码进行批...

百度站长平台js逆向登录解析

百度站长平台js逆向登录解析

在我们使用百度站长平台看看网站数据信息的时候,肯定要先登录才能获取,那么就需要在网页上进行登录,然后才能看到网站一些信息以及做一些操作比如二级域名绑定,抓取诊断、关键词查看等。那如果要代码进行这些操作的话,要解决逆向登录的问题,或者不解决登录的话,在网页上获取cookie进行复制再进行代码操作。本次...

360识别文字验证码后并进行批量提交

360识别文字验证码后并进行批量提交

前面说到360点选验证码js逆向的过程,这次对js逆向的过程进行实际应用并进行url的批量提交,下面讲解一下主要难点。软件拍下自动发货地址:http://faka.seoyiwu.com/product/25.html视频演示问题一、网页图片尺寸是320*198,而通过请求接口获取的图片尺寸是580...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。