微信小程序与微网站,怎么样做短视频,网站怎么能在百度搜到,wordpress手机图片站测试 OK
II 在开发者工具里面 直接搜索m3u8 可以直接找相对应连接地址继续分析 这个m3u8 url地址是从哪里过来的 在什么地方有
III 我们想要视频数据 m3u8连接 在 网页源代码里面有获取整个视频内容 --》分为N个视频片段《ts文件》--在m3u8连接里面-- 视频播放…测试 OK
II 在开发者工具里面 直接搜索m3u8 可以直接找相对应连接地址继续分析 这个m3u8 url地址是从哪里过来的 在什么地方有
III 我们想要视频数据 m3u8连接 在 网页源代码里面有获取整个视频内容 --》分为N个视频片段《ts文件》--在m3u8连接里面-- 视频播放详情页面源代码里面二、代码实现步骤1.发送请求 模拟浏览器对于视频播放详情页url发送请示https://www.acfun.cn/v/ac473438502.获取数据获取服务器返回响应数据开发者工具里 response3.解析数据提取我们想要的数据内容m3u8连接视觉标题4.发送请求。模拟浏览男友对于,m3u8连接 发送请求由第三步提取出来连接发送请求5.获取数据获取服务器返回响应数据开发者工具里 response 对应所有ts文件连接6.解析数据提取我们想要的数据内容所有ts文件连接7.保存数据把所有视频片段内容保存下载并且合成一个完整视频内容8.多页数据采集
#导入数据请求模块 要安装 在cmd里面 pip install requests
import requests
# 导入正则模块--内置模块不要安装
import re
# 导入json 模块 --内置模块不要安装
import json
#导入格式化输出模块 --内置模块不要安装
from pprint import pprint
#确定请求连接 视频详情页
reqUrl https://www.acfun.cn/v/ac47343850
# 模拟请求头
# Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36
reqHeaders {# 用户代理 表示浏览user-agent : Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36
}
#发送请求
response requests.get(urlreqUrl, headersreqHeaders)
#Response [200]
#print(response)
#2.获取数据获取服务器返回响应数据(网页源代码)
# 开发者工具里 response
# response.text 获取响应文本数据网页源代码
#print(response.text)#3.解析数据,提取我们想要的数据内容
# -m3u8链接
# -视频标题
# 调用re模块里面的findall方法,去找到所有我们想要的数据内容
# re.findall(找什么数据,在什么地方找);
#title re.findall(title(.*?)/title,response.text);
# findall 返回的是一个列表
title re.findall(rtitle (.*?)/title, response.text)[0] # 非贪婪匹配避免截断:ml-citation{ref3 datacitationList}
title title.replace(,).replace(,).replace(-,).replace(AcFun弹幕视频网,).replace(认真你就输啦,)
#print(title: title)html_dta re.findall(window.pageInfo window.videoInfo (.*?);,response.text)[0]
#print(html_dta);
# 转数据类型: 方便取值 -- 字典数据类型 键值对取值
json_data json.loads(html_dta)
#print(json_data)#pprint(json_data)
#pprint(json_data[currentVideoInfo][ksPlayJson])
json_Str json_data[currentVideoInfo][ksPlayJson]
#print(json_Str)
#pprint(json.loads(json_Str))
m3u8_url json.loads(json_Str)[adaptationSet][0][representation][0][backupUrl][0]
#print(m3u8_url)
#print(json_data)
#pprint(json.loads(json_data))
4.发送请求。模拟浏览男友对于,m3u8连接 发送请求由第三步提取出来连接发送请求
5.获取数据获取服务器返回响应数据开发者工具里 response 对应所有ts文件连接m3u8_data requests.get(urlm3u8_url,headersreqHeaders).text
#print(m3u8_data)# 提取我们想要的ts链接
# #EXTINF:5.000000,
m3u8_data re.sub(#E.*,,m3u8_data).split()
#print(m3u8_data)
# for遍历提取我们想要ts文件链接把列表里面元素 一个一个提取出来count len(m3u8_data)
print(count)
index 0
for ts in m3u8_data:#print(ts)# https://ali-safety-video.acfun.cn/mediacloud/acfun/acfun_video/ts_url https://ali-safety-video.acfun.cn/mediacloud/acfun/acfun_video/ ts#print(ts_url)#7. 保存数据 -- 需要发送请求 获取数据, content 保存二进制数据保存成文件时使用ts_content requests.get(urlts_url,headersreqHeaders).contentwith open(video\\【温】最有活力的一集.mp4,modeab) as f:# 写入数据f.write(ts_content)print(index: str(index) ,ts_url)index index 1