python带你获取小破站喜爱UP得所用内容

news2024/12/22 2:04:03

前言

嗨喽,大家好呀~这里是爱看美女的茜茜呐

环境使用:

  • Python 3.8

  • Pycharm 2022.3版本

  • ffmpeg <需要设置环境变量> 软件的使用 合成视频和音频

模块使用:

第三方模块,需要安装

  • import requests >>> pip install requests

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

  • import re

  • import json

  • import subprocess

第三方模块安装:

  1. win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests) 回车

  2. 在pycharm中点击Terminal(终端) 输入安装命令

如果出现爆红, 可能是因为 网络连接超时, 可切换国内镜像源,命令如下:

pip install -i https://pypi.doubanio.com/simple/ requests

python资料、源码、教程\福利皆: 点击此处跳转文末名片获取

数据来源分析

–> 确定就是请求链接地址

  1. 明确需求:

    • 采集网站以及数据是什么?

      某个Up主 内容 <播放链接地址>

  2. 通过开发者工具进行抓包分析

    • 搜索 ctrl + F

      在网页源代码中 搜索 playinfo 这个字段 第一个后面花括号包裹就是我们需要的内弱那个
      视频加密 —> AES加密 m3u8加密 --> key iv偏移量

代码展示

# 导入数据请求模块
import requests
# 导入正则表达式模块
import re
# 导入json
import json
# 导入格式化输出模块
from pprint import pprint
# 导入子进程
import subprocess
# 导入文件操作模块
import os
# 导入时间模块
import time
"""
1. 发送请求, 模拟浏览器对url地址发送请求
    - 模拟浏览器 --> 防止被反爬
"""
link = 'https://api.***.com/x/space/wbi/arc/search'
完整源码、解答、教程皆+VX:pytho8987获取,验证备注“777”
data = {
    'mid': '1305006386',
    'ps': '30',
    'tid': '0',
    'pn': '2',
    'keyword': '',
    'order': 'pubdate',
    'platform': 'web',
    'web_location': '1550101',
    'order_avoided': 'true',
    'w_rid': 'e54aebc238909958c27171906cb66290',
    'wts': '1685971898',
}
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
}
link_data = requests.get(url=link, params=data, headers=headers).json()
for index in link_data['data']['list']['vlist']:
    video_id = index['bvid']
    print(video_id)
    time.sleep(1)
    # 请求链接  --> 代码注释, 备注代码意思
    url = f'https://www.****.com/video/{video_id}/'
    # 模拟浏览器 <请求头>
    headers = {

        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
    }
    # 发送请求 请求方式选择 --> 根据浏览器来的
    response = requests.get(url=url, headers=headers)
    # <Response [200]> 响应对象 200状态码表示请求成功
    print(response)
    """
    2. 获取数据, 获取服务器返回响应数据 <网页源代码>
        response.text 获取响应文本数据 --> 获取网页源代码, 返回字符串数据    
    3. 解析数据, 提取视频信息 <标题, 视频内容>
       完整源码、解答、教程皆+VX:pytho8987获取,验证备注“777”
    """
    # 提取视频标题
    title = re.findall('"title":"(.*?)",', response.text)[0].replace(' ', '')
    # 提取视频内容
    html_data = re.findall('<script>window.__playinfo__=(.*?)</script', response.text)[0]
    # 转换数据类型
    json_data = json.loads(html_data)
    pprint(json_data)
    # 字典, 根据键值对取值 --> 根据冒号左边的内容, 提取冒号右边的内容
    audio_url = json_data['data']['dash']['audio'][0]['baseUrl']
    video_url = json_data['data']['dash']['video'][0]['baseUrl']
    print(title)
    print(audio_url)
    print(video_url)
    # <Response [403]> 没有访问权限  获取音频的二进制数据
    audio_content = requests.get(url=audio_url, headers=headers).content
    # 获取视频的二进制数据
    video_content = requests.get(url=video_url, headers=headers).content
    """
    保存数据
    """
    with open('video\\' + title + '.mp3', mode='wb') as audio:
        audio.write(audio_content)

    with open('video\\' + title + '.mp4', mode='wb') as video:
        video.write(video_content)

    exe = f"ffmpeg -i video\\{title}.mp4 -i video\\{title}.mp3 -c:v copy -c:a aac -strict experimental video\\{title}output.mp4"
    subprocess.run(exe)
    os.remove(f'video\\{title}.mp4')
    os.remove(f'video\\{title}.mp3')

尾语

感谢你观看我的文章呐~本次航班到这里就结束啦 🛬

希望本篇文章有对你带来帮助 🎉,有学习到一点知识~

躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。

最后,宣传一下呀~👇👇👇更多源码、资料、素材、解答、交流皆点击下方名片获取呀👇👇

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/624095.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

认识数据湖加速器(Data Lake Accelerator Goose FileSystem,GooseFS)

认识数据湖加速器Data Lake Accelerator Goose FileSystem&#xff0c;GooseFS 一、产品概述二、产品功能三、产品优势四、快速入门五、使用 GooseFS 预热 Table 中的数据六、使用 GooseFS 进行文件上传和下载操作七、使用 GooseFS 加速文件上传和下载操作八、关闭 GooseFS九、…

UE5 Chaos破碎系统学习2

本文继续从实用性的角度学习Chaos破碎系统&#xff0c;因为破碎的许多操作需要力场&#xff0c;比较麻烦&#xff0c;因此本文打算绕过力场实现一些效果&#xff1a; 1.显示材质效果 制作Chaos破碎效果时&#xff0c;会在编辑器下看不见材质&#xff0c;我们可以选择Geometr…

美创数据安全服务能力再获认可!

美创数据安全服务能力又一次获认可&#xff01; 近日&#xff0c;经全方位能力评估和专家评审&#xff0c;美创获得中国软件评测中心和中国计算机行业协会数据安全专业委员会联合颁发的《数据安全服务能力评定资格证书》&#xff0c;数据安全评估能力符合二级评定资格要求。 为…

生存压力下,Smartbi这套方案为企业降本增效带来新的希望

在如今的经济环境下&#xff0c;许多IT企业都面临着困境。经济的不景气导致市场竞争更加激烈&#xff0c;企业的盈利能力受到了严重的冲击&#xff1b;高昂的成本让企业喘不上气来。为了在这个艰难的时期生存下来&#xff0c;降本增效成为了企业的当务之急。 l实施项目利润低&a…

【C++】是内存管理,但C++ !! 模板初阶

目录 一&#xff0c;回望C语言内存 二&#xff0c; C 内存管理方式 1. 内置类型 2. 自定义类型 3. new & malloc 返回内容区别 4. operator new & operator delete 5. malloc/free和new/delete的区别总结 6. 定位new表达式(placement-new) &#xff08;了…

018+limou+C语言预处理

0.前言 您好&#xff0c;这里是limou3434的一篇博客&#xff0c;感兴趣您可以看看我的其他博文系列。本次我主要给您带来了C语言有关预处理的知识。 1.宏的深度理解与使用 1.1.数值宏常量 #define PI 3.1415926注意define和#之间是可以留有空格的 1.2.字符宏常量 #includ…

是德DSO9254A示波器/KEYSIGHT DSO9254A:2.5 GHz

KEYSIGHT是德DSO9254A示波器&#xff0c;Infiniium 9000 系列 2.5 GHz 示波器提供 4 个模拟通道、10 Mpts 存储器和 20 GSa/s 采样率。 简介 Keysight(原Agilent) Infiniium DSO9254A 配有 15 英寸 XGA 显示屏&#xff0c;而且包装非常轻巧&#xff0c;仅有 9 英寸深、26 磅重…

C++ 编写二维码(有源码)

首先来展示一下成果&#xff1a; 二维码图片好像违规了&#xff0c;直接给链接吧网址链接 如果你扫了这个二维码就会得到一个网址&#xff0c;该网址是我写代码的参考&#xff0c;该网站讲述了如何编写一个二维码&#xff0c;很详细&#xff0c;我没有实现汉字的编码&#xff…

LeetCode ! 42 Trapping Rain Water

参考资料&#xff1a;leetCode评论区大佬, 《程序员代码面试指南》 思路1&#xff1a;使用单调栈 维持一个从栈底到栈顶中的元素——下标&#xff0c;对应到数组是从大到小排序。 遍历数组&#xff0c;如果新值大于栈顶元素&#xff08;下标&#xff09;对应的数组值&#xf…

『Linux』第九讲:Linux多线程详解(六 - 完结)_ 线程池 | 读写锁

「前言」文章是关于Linux多线程方面的知识&#xff0c;上一篇是 Linux多线程详解&#xff08;五&#xff09;&#xff0c;今天这篇是 Linux多线程详解&#xff08;六&#xff09;&#xff0c;也是多线程最后一篇&#xff0c;内容大致是线程池&#xff0c;讲解下面开始&#xff…

什么?英语不好?这所211可以不考英语!

本期为大家整理热门院校“哈尔滨工程大学810”的择校分析&#xff0c;这个择校分析专题会为大家结合&#xff1a;初试复试占比、复试录取规则&#xff08;是否公平&#xff09;、往年录取录取名单、招生人数、分数线、专业课难度等进行分析。希望能够帮到大家! –所有数据来源…

KDJJC-80绝缘油介电强度测试仪

一、概述 测试仪&#xff08;单杯&#xff09;是我公司科研技术人员&#xff0c;依据国家标准GB507-1986及行标DL/T846.7-2004的有关规定&#xff0c;发挥自身优势&#xff0c;经过多次现场试验和长期不懈努力&#xff0c;精心研制开发的高准确度、数字化工业仪器。 为满足不同…

初步了解SpringCloud微服务架构

✅作者简介&#xff1a;大家好&#xff0c;我是Cisyam&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Cisyam-Shark的博客 &#x1f49e;当前专栏&#xff1a; 微服务探索之旅 ✨特色专…

Apikit SaaS 10.9.0 版本更新:接口测试支持通过 URL 请求大型文件,覆盖更多场景的文件请求测试

Hi&#xff0c;大家好&#xff01; Eolink Apikit 即将在 2023年 6月 8日晚 18:00 开始更新 10.9.0 版本。本次版本更新主要是对多个应用级资源合并&#xff0c;并基于此简化付费套餐和降低费率。 本次应用合并是为了接下来更好的发挥 Eolink Apikit 的优势&#xff0c;提供 …

Web前端-React学习

React基础 React 概述 React 是一个用于构建用户界面的JavaScript库。 用户界面&#xff1a; HTML页面&#xff08;前端&#xff09; React主要用来写HTML页面&#xff0c; 或构建Web应用 如果从MVC的角度来看&#xff0c;React仅仅是视图层&#xff08;V&#xff09;,也就…

多目标建模loss为什么最好同时收敛?

多目标的多个loss是否同时收敛最好&#xff1f; 假设 task A的独有参数 W a W_a Wa​task B的独有参数 W b W_b Wb​task A和 task B的共享的参数 W s W_s Ws​ 那么 l o s s l o s s a l o s s b loss loss_a loss_b losslossa​lossb​ 假设损失函数为 f f f&…

【DepthFilter】深度滤波器

14讲P326-327 函数实现一个深度滤波器&#xff0c;用于计算图像中某个像素点的深度值。算法步骤的含义和含义&#xff1a; 将当前帧的像素点和参考帧的像素点通过三角化计算深度。将参考帧到当前帧的变换矩阵 T_C_R 转换为当前帧到参考帧的变换矩阵 T_R_C。将参考帧像素点 pt_…

Docker超详细基础使用(带图)

目录 安装ubuntu 基本使用命令 docker run 容器名 延伸命令 启动ubuntu 查看所有正在运行的容器 指定容器别名启动 doker ps 延伸命令 退出容器 重新进入正在运行的容器 启动容器 删除已停止的容器 强制删除容器 查看容器日志 查看容器内部运行的进程 ​编辑 查看容…

Axure教程—分段滑动条

本文将教大家如何用AXURE中动态面板制作单分段滑动条 一、效果 预览地址&#xff1a;https://c00qrq.axshare.com 下载地址&#xff1a;https://download.csdn.net/download/weixin_43516258/87881401?spm1001.2014.3001.5503 二、功能 滑块滑动到相应的浮点&#xff0c;显示…

【SVN】SVN查看日志时报错:联系服务器时出现问题,条目不可读

目录 0.背景介绍 1.问题原因 2.解决步骤 0.背景介绍 环境&#xff1a;SVN服务器在ubuntu下&#xff0c;SVN客户端在windows下。 最近在搭ubuntu下的SVN的服务器&#xff0c;然后再windows下用SVN客户端将文件上传至服务器保管。 windows下想查看日志时&#xff0c;报错【…