-
项目思路解析
-
简易源码分析
网址:A站
开发环境:win10、python3.7
开发工具:pycharm、Chrome
工具包:requests、docx,lxml
-
lxml的使用
-
m3u8文件处理
-
ts文件合成MP4
通过xpath方式提取分类之后的首页数据
获取到每个视频的vacid
拼接进入详情页面的url地址
https://www.acfun.cn/{}
请求详情页面
获取网页源代码的backupUrl的对应的值
请求对应的m3u8的文件地址
https://tx-safety-video.acfun.cn/mediacloud/acfun/acfun_video/hls/b6f3561527ea7674-4c05d717a155db2cd75c5e3455bcc285-hls_4k_h264_1.m3u8?pkey=ABCVjggV-526Eqfc2aQQzGQs8FaP_JPEFMV8eoqWKXmTZNXICw3L3XRSv0vwV-O7fLtKIhIyZzMNqkxhT_7BJ8X0gLmIuej3RM1T37Wg7iIGLBDUcMNB27vJ8DIX0F2_QAyLKZ7DGb4h7C_7MvCIy1arBJWk0OVyDm5Gvn7iS1clxQbLPd9N1J-yRHeuoMAQ-bF-cQca4Dpi0jz2XSyxAqvj1U-kNkybrP2xBwTxT1gG5CRLcOu0uBvjVryvdLm_bwQ&safety_id=AAKL9ykXaHfy4Hgj44E9P_hc%22],%22codecs%22:%22avc1.640033,mp4a.40.2%22,%22hidden%22:false,%22disableAdaptive%22:false,%22comment%22:%22b6f3561527ea7674/HLS_4K_H264_1%22,%22id%22:1,%22url%22:%22https://ali-safety-video.acfun.cn/mediacloud/acfun/acfun_video/hls/b6f3561527ea7674-4c05d717a155db2cd75c5e3455bcc285-hls_4k_h264_1.m3u8?pkey=ABCVjggV-526Eqfc2aQQzGQs8FaP_JPEFMV8eoqWKXmTZAnICSBGjLT_PyFsslJJXiOP2eQEO–qVGdx3RAVv2u-HzgG2V3aGkpXflsVIfuLURk-uyEAGOvuDvQoIX64vgGt9w5oTxJ1X_6LoiSXl2Z-7Kb5ytDpExAACRaRMSOqDcxaB-Q9niMjCa9yuAs40UKwxyIzZdmKyRjL2GRFwBqH0CjM9ZKxkjmQ7nuTn4bfnFyWP2LIrkeW6RDFLuG1mgc&safety_id=AAKL9ykXaHfy4Hgj44E9P_hc
请求m3u8的文件地址
解析对应的m3u8文件
视频数据是ts视频拼接起来的
取出m3u8文件里面的每个ts的下载地址
拼接成新的视频下载地址
https://ali-safety-video.acfun.cn/mediacloud/acfun/acfun_video/hls/b6f3561527ea7674-723550b3c6b1ff9a4b05be736acd7098-hls_720p_2.00000.ts?pkey=ABClqkBWwxUgoTqPKsnjoZ5X2vsyNNN9F0mDGRhhZMiyRUZkfurznShxCBqmWZWTtj2M2zCGcFwL-F30xT89BkrNoA4QT7yBQ9q4sjyRJpmBrVqcd2vQHWZhjTzkUsPY2hQuWtSoYHBrWJbqTgNbWVF-k0vjXxbDsN311gKd358IpcQnTvboQDX1wOKspWfm_OHyXMkPJqdCulUQ6wVBA6i5kE9RGNnVVgyFKxbRzPiKzyKfCnzYo6x723CCbbRNnBM&safety_id=AAKL9ykXaHfy4Hgj44E9P_hc
下载对应的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(“视频”):
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)
)
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)