【教学类-10-03】python单线程下载哔哩哔哩网址(中间字母不同,前面后面相同)的视频

news2024/11/18 21:36:52

背景需求:

最近测试以前的多线程(同时下载5个视频),结果30个视频只下到了3个,于是把“单个下载(单线程下载)”的一个代码进行拓展研究。前一篇介绍了网址尾数递增的遍历程序,本篇介绍“网址中间字母不同,前面后面相同”的列表代码拼接方法。(PS:单线程下载非常非常慢。)

适用情况:

视频网址前面部分一样、后面部分一样,中间的一部分随机字母不一样

可能在一个视频列表内,只要点击列表就能找到网址,也可能要从视频主页上分别点开,才能找到网址

代码演示:

import sys
from you_get import common


'''
视频地址格式为:
    # https://www.bilibili.com/video/BV1Lr4y1i7hK/?spm_id_from=333.337.search-card.all.click

    # https://www.bilibili.com/video/BV11P4y1E7ch/?spm_id_from=333.337.search-card.all.click

    # https://www.bilibili.com/video/BV1Ca411q7Ts/?spm_id_from=333.337.search-card.all.click

    # https://www.bilibili.com/video/BV1pm4y1D7nu/?spm_id_from=333.337.search-card.all.click
也就是前面最后的的地址都一样,只有中间的不一样(BV1Lr4y1i7hK)

就可以采用以下代码
'''
address_1=input('前面部分的网址\n')
# 拷贝:“https://www.bilibili.com/video/)
address_2=input('后面部分的网址\n')
# 拷贝:“/?spm_id_from=333.337.search-card.all.click”

list=['BV1Lr4y1i7hK','BV11P4y1E7ch','BV1Ca411q7Ts','BV1pm4y1D7nu']# 数量少可行,数量多,拷贝也要很长时间(不能输错每一个字符,否则就无法运行)


# name=input(input('名称\n'))
# path = r'D:\test\'   # 根据你的物理环境自行设定,不存在的话会自行创建这么一个文件夹
# # 如果savePath不存在,就新建这么一个目录
# if not os.path.exists(path):
#     os.makedirs(path)    

for  i in range (0,int(len(list))):    # 计算list的长度,一共有4个,遍历0,1,2,3
    
    #提取信息
    def get_i(url):
        sys.argv=["you-get","-i",url]
        common.main()

    #基本下载
    def get_o(url,pwd):
        sys.argv=["you-get","-o",pwd,url]
        common.main()

    #指定格式下载
    def get_type(url,pwd,type):
        sys.argv=["you-get","-F",type,"-o",pwd,url]
        common.main()    

    pwd="D:\\test"
    type="dash-flv360"
    url="{}{}{}".format(address_1,list[i],address_2)    # 网址分成三段组合,list[i]提取list的每个数组
    print(url)

    get_o(url,pwd)

# 删除所有XML格式的文件
import glob,os

path =r'D:\test'  
for infile in glob.glob(os.path.join(path, '*.xml')):
    os.remove(infile)
    print(infile+'已删除')


终端展示

输入前面和后面完全相同的部分

用过多线程下载,再看单线程实在是太慢了,但是能下载已经很不错了!

第一个拼接网址下载完成后,自动进入第二个拼接网址,继续下载

下载D:/test下

(13:59分截图)

全部下载完成后,删除xml格式文件

存在问题:

这种提取方法,视频数量不能多,否则光是复制列表里的随机字母串就很费时间。

其他思路方案:

1 把所有需要的网址都贴到代码里.两头加'' 做成list ——list=['全网址1’,'全网址2’]

2.如何批量提取网址

3.把所有需要的网址都贴到代码里,尝试提取第25-37个数字?

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

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

相关文章

【华为OD机试模拟题】用 C++ 实现 - 最大报酬(2023.Q1)

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…

数据结构与算法之[把数字翻译成字符串]动态规划

前言:最近在刷动态规划的算法题目,感觉这一类题目还是有一点难度的,但是不放弃也还是能学好的,今天给大家分享的是牛客网中的编程题目[把数字翻译成字符串],这是一道经典的面试题目,快手,字节跳…

CleanMyMac是什么清理软件?及使用教程

你知道CleanMyMac是什么吗?它的字面意思为“清理我的Mac”,作为软件,那就是一款Mac清理工具,Mac OS X 系统下知名系统清理软件,是数以万计的Mac用户的选择。它可以流畅地与系统性能相结合,只需简单的步骤就…

【机器学习 | 强基计划】开山篇 | 机器学习介绍及其类别和概念阐述

🤵‍♂️ 个人主页: @计算机魔术师 👨‍💻 作者简介:CSDN内容合伙人,全栈领域优质创作者。 机器学习 | 强基计划系列 (一) 作者: 计算机魔术师 版本: 1.0 ( 2022.2.25) 注释:文章会不定时更新补充 文章目录 前言一、机器学习概览1.1 有监督学习和无监督学习1.1.…

Day20【元宇宙的实践构想06】—— 元宇宙与Web3.0

💃🏼 本人简介:男 👶🏼 年龄:18 🤞 作者:那就叫我亮亮叭 📕 专栏:元宇宙 部分资料参考文献: 成生辉教授的《元宇宙:概念、技术及生态》和百度相关…

【数通网络交换基础梳理1】二层交换机、以太网帧、MAC地址数据帧转发原理详解

一、网络模型 万年不变,先从模型结构分析,现在大家熟知的网络模型有两种。第一种是,OSI七层模型,第二种是TCP/IP模型。在实际运用中,参考更多的是TCP/IP模型。 OSI七层模型 TCP/IP模型 不需要全部理解,…

电子技术——输出阶类型

电子技术——输出阶类型 输出阶作为放大器的最后一阶,其必须有较低的阻抗来保证较小的增益损失。作为放大器的最后一阶,输出阶需要处理大信号类型,因此小信号估计模型不适用于输出阶。尽管如此,输出阶的线性也非常重要。实际上&a…

绝对让你明明白白,脚把脚带你盯着 I2C 时序图将 I2C 程序给扣出来(基于STM32的模拟I2C)

目录前言一、关于STM32 I/O端口位的基本结构讲解二、模拟I2C编写前的需知道的知识1、I2C简介2、根据时序编写模拟I2C程序重要的两点Ⅰ、主机发送数据给从机时的时序控制Ⅱ、主机接收来自从机的数据时的时序控制Ⅲ、完整的I2C时序图(按写程序的思想分割时序&#xff…

【华为OD机试模拟题】用 C++ 实现 - 不含 101 的数(2023.Q1)

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…

跟着《代码随想录》刷题(三)——哈希表

3.1 哈希表理论基础 哈希表理论基础 3.2 有效的字母异位词 242.有效的字母异位词 C bool isAnagram(char * s, char * t){int array[26] {0};int i 0;while (s[i]) {// 并不需要记住字符的ASCII码,只需要求出一个相对数值就可以了array[s[i] - a];i;}i 0;whi…

阿里是如何做Code Review的?

作为卓越工程文化的一部分,Code Review其实一直在进行中,只是各团队根据自身情况张驰有度,松紧可能也不一,这里简单梳理一下CR的方法和团队实践。 一、为什么要CR 提前发现缺陷 在CodeReview阶段发现的逻辑错误、业务理解偏差、性…

JavaScript DOM操作

目录 获取元素: 修改元素属性: 添加、删除、替换元素: 修改样式: DOM(文档对象模型)是一种用于操作 HTML 和 XML 文档的 API。JavaScript 通过 DOM API 可以访问和操作页面中的元素、属性和样式等。 获…

File类及IO流说明

目录 1.File类说明 (1)构造方法创建文件 (2)创建功能 (3)File类的判断和获取功能 (4)文件删除功能 2.I/O流说明 (1).分类 3.字节流写数据 (1)说明 (2)字节流写数据的三种方式 (3)写入时实现换行和追加写入 (4)异常处理中加入finally实现资源的释放 4.字节流读数据 …

2020蓝桥杯真题成绩分析 C语言/C++

题目描述 小蓝给学生们组织了一场考试,卷面总分为 100 分,每个学生的得分都是一个 0 到 100 的整数。 请计算这次考试的最高分、最低分和平均分。 输入描述 输入的第一行包含一个整数 (1≤n≤10^4 ),表示考试人数。 接下来 n 行&#xff0…

adb命令导出手机已安装的android应用apk文件

adb命令导出手机已安装的android应用apk文件,保存到PC电脑 前提条件是手机已经和PC电脑可以通过adb建立连接。 (1)通过adb shell命令获取当前手机所有已经安装的应用包名: adb shell pm list package (2&#xff09…

什么是Apple Search Ads

Apple Search Ads 是一个很重要的广告渠道,对于时间紧迫或资源有限的人来说,就不用担心定义关键词或管理受众群体的定位,它会以简单有效的方式提升我们应用的排名,从而实现高转化率的目标。 那我们该怎么设置Apple Search Ads B…

【CSS】CSS 层叠样式表 ① ( 简介 | CSS 引入方式 - 内联样式 | 内联样式语法 | 内联样式缺点 )

文章目录一、CSS 层叠样式表二、CSS 引入方式 - 内联样式1、内联样式语法2、内联样式缺点3、内联样式代码示例① 核心代码示例② 完整代码示例③ 执行结果一、CSS 层叠样式表 CSS 全称 Cascading Style Sheets , 层叠样式表 ; 作用如下 : 设置 HTML 页面 文本内容 的 字体 , 颜…

使用自己的数据集Fine-tune PaddleHub预训练模型

使用自己的数据Fine-tune PaddleHub预训练模型 果农需要根据水果的不同大小和质量进行产品的定价,所以每年收获的季节有大量的人工对水果分类的需求。基于人工智能模型的方案,收获的大堆水果会被机械放到传送带上,模型会根据摄像头拍到的图片…

Jina 3.14 版本发布!支持独立部署Executor

Jina 是一个 MLOps 框架,赋能开发者在云上构建多模态、跨模态的应用程序。Jina 能够将 PoC 提升为生产就绪服务。基础设施的复杂性交给 Jina,开发者能够直接轻松使用高级解决方案和云原生技术。🌟 GitHubhttps://github.com/jina-ai/jina/rel…

【华为OD机试模拟题】用 C++ 实现 - 敏感字段加密(2023.Q1)

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…