Python 官方文档:入门教程 => 点击学习
前言 大家早好、午好、晚好吖~ 目录标题 前言环境使用:模块使用:模块安装问题:如果安装python第三方模块:安装失败原因: 如何配置pycharm里面的python解释器?pyc
大家早好、午好、晚好吖~
内置模块 你安装好Python环境就可以了
import re
import JSON
win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests) 回车
在pycharm中点击Terminal(终端) 输入安装命令
失败一: pip 不是内部命令
解决方法: 设置环境变量
失败二: 出现大量报红 (read time out)
解决方法: 因为是网络链接超时, 需要切换镜像源
清华:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:Https://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:https://pypi.hustunique.com/
山东理工大学:https://pypi.sdutlinux.org/
豆瓣:https://pypi.douban.com/simple/
例如:pip3 install -i https://pypi.doubaNIO.com/simple/ 模块名
失败三: cmd里面显示已经安装过了, 或者安装成功了, 但是在pycharm里面还是无法导入
解决方法: 可能安装了多个python版本 (anaconda 或者 python 安装一个即可) 卸载一个就好
或者你pycharm里面python解释器没有设置好
选择file(文件) >>> setting(设置) >>> Project(项目) >>> python interpreter(python解释器)
点击齿轮, 选择add
添加python安装路径
选择file(文件) >>> setting(设置) >>> Plugins(插件)
点击 Marketplace 输入想要安装的插件名字 比如:翻译插件 输入 translation / 汉化插件 输入 Chinese
选择相应的插件点击 install(安装) 即可
安装成功之后 是会弹出 重启pycharm的选项 点击确定, 重启即可生效
资料点击 蓝色字体 自取 ,我都放在这里了。
I. F12
或者 右键点击检查选择network
刷新网页
这么多数据包, 我想要视频数据在什么地方?
所有视频片段
II. 在开发者工具里面 直接搜索m3u8 可以直接找相对应链接地址
继续分析 这个 m3u8 url地址是从哪里过来 在什么地方有
III. 我们想要视频数据
获取整个视频内容 —> 分为N个视频片段
发送请求, 模拟浏览器对于视频播放详情页url发送请求
获取数据, 获取服务器返回响应数据
开发者工具里 response
解析数据, 提取我们想要的数据内容
- m3u8链接
- 视频标题
发送请求, 模拟浏览器对于 m3u8链接 发送请求
由第三步提取出来链接发送请求
获取数据, 获取服务器返回响应数据
开发者工具里 response
<对应所有ts文件链接>
解析数据, 提取我们想要的数据内容
所有ts文件链接
保存数据, 把所有视频片段内容保存下来, 并且合成为一个完整视频内容
多页数据采集
资料点击 蓝色字体 自取 ,我都放在这里了。
导入模块
# 导入数据请求模块 ---> 要安装 在cmd里面 pip install requestsimport requests# 导入正则模块 ---> 内置模块 不需要安装import re# 导入json模块 ---> 内置模块 不需要安装import json# 导入格式化输出模块 ---> 内置模块 不需要安装from pprint import pprint
1. 发送请求, 模拟浏览器对于 视频播放详情页url 发送请求
伪装代码 --> headers 请求头
在开发者工具里面进行复制粘贴
请求头 字典数据类型, 构建完整键值对
响应对象
200 状态码 表示请求成功
如果想要多个视频内容, 就要把视频ID获取下来 <动态数据加载>
分段写请求链接:
问号左边的内容 属于链接
问号右边的内容 属于请求参数/查询参数
批量替换内容:
选中替换的内容, 按 ctrl + R
点选正则<.*>
正则命令匹配数据 替换
(.*?): (.*)'$1': '$2',
请求链接
请求参数
data = { 'quickViewId': 'ac-space-video-list', 'reqID': '13', 'ajaxpipe': '1', 'type': 'video', 'order': 'newest', 'page': '2', 'pageSize': '20', 't': '1666360290070',}
模拟伪装
headers = { # User-Agent 用户代理 表示浏览器基本身份信息 'User-Agent': 'Mozilla/5.0 (windows NT 10.0; WOW64) AppleWEBKit/537.36 (Khtml, like Gecko) Chrome/101.0.0.0 Safari/537.36'}
发送请求
response_1 = requests.get(url=link, params=data, headers=headers)
解析数据
video_id_list = re.findall('atomid.*?":.*?"(\d+).*?",', response_1.text)# for循环遍历for video_id in video_id_list:
# 发送请求 response = requests.get(url=url, headers=headers)
2. 获取数据, 获取服务器返回响应数据
response.text
获取响应文本数据 <网页源代码>
3. 解析数据, 提取我们想要的数据内容
m3u8链接
视频标题
调用re模块里面findall
方法, 去找到所有我们想要的数据内容
re.findall
(‘什么数据’, ‘什么地方’)
从什么地方去找你想要的什么数据
从 response.text
这里面 去找 "title":"(.*?)"
, 其中 (.*?)
是我们要的数据
[1]
列表索引位置取值
表示提取列表里面第二个元素
提取标题
title = re.findall('"title":"(.*?)",', response.text)[1]
提取视频信息
–> 字符串数据类型
html_data = re.findall('window.pageInfo = window.videoInfo = (.*?);', response.text)[0]
转数据类型: 方便取值
—> 字典数据类型 键值对取值: 根据冒号左边的内容[键], 提取冒号右边的内容[值]
json_data = json.loads(html_data)
提取 m3u8链接
m3u8_url = json.loads(json_data['currentVideoInfo']['ksPlayJson'])['adaptationSet'][0]['representation'][0]['backupUrl'][0]
4. 发送请求, 模拟浏览器对于 m3u8链接 发送请求
由第三步提取出来链接发送请求
5. 获取数据, 获取服务器返回响应数据
开发者工具里 response <对应所有ts文件链接
xpath
标签节点提取数据内容
re
是可以直接对于字符串数据进行解析提取
CSS
根据标签属性提取数据内容
requests parsel re csv selenium
# 发送请求 + 获取数据 m3u8_data = requests.get(url=m3u8_url, headers=headers).text # 提取我们想要ts链接 跟上 6 有不明白 5 split() 分割字符串分割 --> 列表 m3u8_data = re.sub('#E.*', '', m3u8_data).split() print(title) # for循环遍历 提取我们想要ts文件链接, 把列表里面元素 一个一个提取出来 for ts in m3u8_data:
字符串拼接 构建完整链接地址
7. 保存数据
–> 需要发送请求 + 获取数据
ts_content = requests.get(url=ts_url, headers=headers).content with open('video\\' + title + '.mp4', mode='ab') as f: # 写入数据 f.write(ts_content) print(ts_url)
文章看不懂,我专门录了对应的视频讲解,本文只是大致展示,完整代码和视频教程点击下方蓝字
点击 蓝色字体 自取,我都放在这里了。
宁外给大家推荐一个好的教程:
【48小时搞定全套教程!你和大佬只有一步之遥【python教程】
好了,我的这篇文章写到这里就结束啦!
有更多建议或问题可以评论区或私信我哦!一起加油努力叭(ง •_•)ง
喜欢就关注一下博主,或点赞收藏评论一下我的文章叭!!!
来源地址:https://blog.csdn.net/weixin_62853513/article/details/127573202
--结束END--
本文标题: Python采集某网站小视频内容, m3u8内容下载
本文链接: https://www.lsjlt.com/news/418529.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0