Python采集某网站小视频内容, m3u8内容下载

前言

大家早好、午好、晚好吖~

Python采集某网站小视频内容, m3u8内容下载

目录标题

*
前言
环境使用:
模块使用:
模块安装问题:

+
* 如果安装python第三方模块:
* 安装失败原因:
+ 如何配置pycharm里面的python解释器?
+ pycharm如何安装插件?
+ 👇 👇 👇 源码、教程
如何实现虫案例:

+ 一. 数据来源分析
+ 二. 代码实现步骤:
代码展示

+ 👇 👇 👇 源码、教程 领取
效果展示
尾语 💝

; 环境使用:

  • Python 3.8
  • Pycharm

模块使用:

  • import requests >>> pip install requests

内置模块 你安装好python环境就可以了

  • import re
  • import json

模块安装问题:

如果安装python第三方模块:

  1. win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests) 回车
  2. 在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解释器没有设置好

如何配置pycharm里面的python解释器?

  1. 选择file(文件) >>> setting(设置) >>> Project(项目) >>> python interpreter(python解释器)
  2. 点击齿轮, 选择add
  3. 添加python安装路径

pycharm如何安装插件?

  1. 选择file(文件) >>> setting(设置) >>> Plugins(插件)
  2. 点击 Marketplace 输入想要安装的插件名字 比如:翻译插件 输入 translation / 汉化插件 输入 Chinese
  3. 选择相应的插件点击 install(安装) 即可
  4. 安装成功之后 是会弹出 重启pycharm的选项 点击确定, 重启即可生效

👇 👇 👇 源码、教程

资料点击 蓝色字体 自取 ,我都放在这里了。

如何实现虫案例:

一. 数据来源分析

  1. 分析清楚我们想要数据内容, 是在什么地方, 什么样子的

使用开发者工具进行抓包分析: 视频数据以及视频标题

I. F12 或者 右键点击检查选择 network 刷新网页

这么多数据包, 我想要视频数据在什么地方?

  • M3U8 视频格式: 把整个完整的视频内容, 分为N个视频片段, 每个片段都是几秒钟

所有视频片段

II. 在开发者工具里面 直接搜索m3u8 可以直接找相对应链接地址

继续分析 这个 m3u8 url地址是从哪里过来 在什么地方有

III. 我们想要视频数据

获取整个视频内容 —> 分为N个视频片段

二. 代码实现步骤:

  1. 发送请求, 模拟浏览器对于视频播放详情页url发送请求
  2. 获取数据, 获取服务器返回响应数据
    开发者工具里 response
  3. 解析数据, 提取我们想要的数据内容
  4. m3u8链接
  5. 视频标题
  6. 发送请求, 模拟浏览器对于 m3u8链接 发送请求
    由第三步提取出来链接发送请求
  7. 获取数据, 获取服务器返回响应数据
    开发者工具里 response
  8. 解析数据, 提取我们想要的数据内容
    所有ts文件链接
  9. 保存数据, 把所有视频片段内容保存下来, 并且合成为一个完整视频内容
  10. 多页数据采集

代码展示

👇 👇 👇 源码、教程 领取

资料点击 蓝色字体 自取 ,我都放在这里了。

导入模块


import requests

import re

import json

from pprint import pprint

1. 发送请求, 模拟浏览器对于 视频播放详情页url 发送请求

  • 伪装代码 –> headers 请求头
  • 在开发者工具里面进行复制粘贴 <ua, cookie host referer></ua,>
  • 请求头 字典数据类型, 构建完整键值对
  • <response [200]></response> 响应对象 200 状态码 表示请求成功

如果想要多个视频内容, 就要把视频ID获取下来

分段写请求链接:

  • 问号左边的内容 属于链接
  • 问号右边的内容 属于请求参数/查询参数

批量替换内容:

  • 选中替换的内容, 按 ctrl + R 点选正则 <.*><!--.*-->
  • 正则命令匹配数据 替换
(.*?): (.*)
'$1': '$2',

请求链接

Python采集某网站小视频内容, m3u8内容下载

请求参数

data = {
    'quickViewId': 'ac-space-video-list',
    'reqID': '13',
    'ajaxpipe': '1',
    'type': 'video',
    'order': 'newest',
    'page': '2',
    'pageSize': '20',
    't': '1666360290070',
}

模拟伪装

headers = {

    '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 video_id in video_id_list:

Python采集某网站小视频内容, m3u8内容下载

    response = requests.get(url=url, headers=headers)

2. 获取数据, 获取服务器返回响应数据

  • 开发者工具里 response

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

Original: https://blog.csdn.net/weixin_62853513/article/details/127573202
Author: 搬砖python中~
Title: Python采集某网站小视频内容, m3u8内容下载

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/639399/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球