Python 爬虫之下载视频(三)

批量下载某B主视频


文章目录


前言

上一篇讲了如何去获取标题和视频链接。这篇就跟大家讲一下如何去下载这些视频。本篇会以标题和 视频链接 为突破口,来寻找 视频的下载链接 藏在哪里。

注意:分上下两篇来写,请先看Python 爬虫之下载视频(二)


一、基本思路

  • 第一步:根据上篇找到的视频链接,打开它,会转到一个新的页面。
  • 第二步:新页面刚打开,会弹出登陆窗口,关闭它。
  • 第三步:使用 find 方法查找到视频下载链接的位置。
  • 第四步:使用request.get() 方法去下载该视频。
  • 第五步:用爬到的标题给它们命名保存。

二、确定遍历循环结构

这里要意识到,我们需要将视频的标题和视频链接一一对应起来。这样才能达到理想的效果。

代码如下:

python 复制代码
# 遍历地址和标题,让其一一对应起来
i = 0
while i < len(right_url_list):

    # 视频链接
    all_url = url_list[i]
    
    # 视频标题
    dirty_name = title_list[i]
    
    i += 1

这里我采用的是while循环结构,简单通俗易懂,便于后面的进一步处理。

注意:后面的所有代码都是在while循环结构下写的


三、基本思路中第12步

代码如下:

python 复制代码
    # 再一次爬取
    driver.get(all_url)
    
    # 等待网页打开
    time.sleep(8)

    # 页面打开会弹出一个登录窗口
    close = driver.find_element(by=By.CSS_SELECTOR, value='.dy-account-close')
    
    # 等登录窗口弹出来
    time.sleep(5)
    
    # 关闭弹出的登录窗口
    close.click()
    # 等待网页加载完
    time.sleep(5)

这里就不多解释了,上一篇有相似的内容。


三、基本思路中第345步

代码如下:

python 复制代码
    # 获取视频的下载地址
    dirty_downloaded_url = driver.find_element(by=By.CSS_SELECTOR, value='video source:nth-child(3)').get_attribute(
        'src')

    # 下载视频
    response = requests.get(dirty_downloaded_url, stream=True)
    total_downloaded = 0
    chunk_size = 1024
    with open(f'{dirty_name}.mp4', 'wb') as f:
        for chunk in response.iter_content(chunk_size=chunk_size):
            f.write(chunk)
    print(f'下载完了!!{dirty_name}.mp4')

此处有两个知识点需要大家去学习一下(学完再看上面那几行代码轻轻松松):

一是 driver.find_element(by 相关的知识点。

二是 下载和保存视频的方式的相关的知识点。


总结

此程序是在Python 3.11.6 版本的环境下编写的,注意哦要不然程序可能运行不起来。

运行完上面的程序,就会得到下面的东西。

相关推荐
DLYSB_4 小时前
存储运维实战:基于 Ceph Event 监听与 Python 适配器的分布式存储健康度物理声光响应架构
运维·ceph·python·报警灯
阿童木写作4 小时前
跨境图片翻译工具多合一,批量图片视频字幕翻译加智能抠图
人工智能·python·音视频·语音识别
隐积5 小时前
3.1.7.Qt容器大家族(3):QVariant——万能盒子
开发语言·qt
阿童木写作6 小时前
Python实现Temu图片批量翻译自动化教程
运维·人工智能·python·自动化
kisloy6 小时前
【爬虫入门第13讲】Scrapy 框架深度解析(四)核心配置与自定义扩展
网络·爬虫·scrapy
就是一只白7 小时前
复制地理信息python版本
python
看浪的路人7 小时前
第1讲:Agent 到底是什么?和 Chatbot 有什么区别
python·ai
名字还没想好☜7 小时前
Next.js ‘use client‘ 到底加在哪:Server/Client Components 边界与常见报错
开发语言·前端·javascript·react·next.js
瓦学妹8 小时前
什么是网络索引?它是如何工作的?
大数据·网络·python·网络爬虫
天天爱吃肉82188 小时前
商用车多体动力学实战笔记|第6篇:动力传动系统(发动机、变速箱、分动器、TCS、LSD限滑差速)
大数据·人工智能·笔记·python·嵌入式硬件·汽车