-
lxml的使用
-
m3u8文件处理
-
ts文件合成MP4
通过xpath方式提取分类之后的首页数据
获取到每个视频的vacid
拼接进入详情页面的url地址
请求详情页面
获取网页源代码的backupUrl的对应的值
请求对应的m3u8的文件地址
tx-safety-video.acfun.cn/mediacloud/…
请求m3u8的文件地址
解析对应的m3u8文件
视频数据是ts视频拼接起来的
取出m3u8文件里面的每个ts的下载地址
拼接成新的视频下载地址
ali-safety-video.acfun.cn/mediacloud/…
下载对应的ts视频数据
将每个ts数据以追加的形式写入到MP4的文件里
import requests
import re
from tqdm import tqdm
from lxml import etree
import os
def request_data(url):
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.72 Safari/537.36 Edg/90.0.818.42'
}
response = requests.get(url, headers=headers)
return response
def save(name, video):
path = f'{name}\'
if not os.path.exists("视频"):
os.makedirs("视频")
with open("视频/" + name + '.mp4', mode='ab') as f:
f.write(video)
start_url = "www.acfun.cn/v/list218/i…"
res = request_data(start_url)
html_data = etree.HTML(res.text)
acid_list = html_data.xpath('//div[@class="list-content-item"]/a[1]/@href')
ac = input('输入acid:')
for ac in acid_list:
url = 'www.acfun.com{}'.format(ac)
print(url)
请求页面地址 获取到 m3u8地址
data = request_data(url).text
m3u8_url = re.findall('backupUrl(.*?)"]', data)[0].replace('"', '').split('\')[-2]
title = re.findall('"title":"(.*?)"', data)[0]
请求m3u8地址
m3u8_data = request_data(m3u8_url).text
数据替换
m3u8_data = re.sub(r'#EXTM3U', "", m3u8_data)
m3u8_data = re.sub(r'#EXT-X-VERSION:\d', "", m3u8_data)
m3u8_data = re.sub(r'#EXT-X-TARGETDURATION:\d', "", m3u8_data)
m3u8_data = re.sub(r'#EXT-X-MEDIA-SEQUENCE:\d', "", m3u8_data)
m3u8_data = re.sub(r'#EXTINF:\d.\d,', "", m3u8_data)
现在能在网上找到很多很多的学习资源,有免费的也有收费的,当我拿到1套比较全的学习资源之前,我并没着急去看第1节,我而是去审视这套资源是否值得学习,有时候也会去问一些学长的意见,如果可以之后,我会对这套学习资源做1个学习计划,我的学习计划主要包括规划图和学习进度表。
分享给大家这份我薅到的免费视频资料,质量还不错,大家可以跟着学习