python—爬虫爬取视频样例

news2024/12/23 3:29:55

下面是一个使用Python爬虫爬取视频的基本例子。创建一个Python爬虫来爬取视频通常涉及到几个步骤:发送HTTP请求、解析网页内容、提取视频链接、下载视频文件。

import json

import requests
from lxml import etree

if __name__ == '__main__':
    # UA伪装
    head = {
        "User-Agent": "http://example.com/"
        # 防盗链
        , "Referer": "http://example.com/"
        ,
        "Cookie": "http://example.com/"
    }

    # 1、指定url
    url = "http://example.com/"
    # 2、发送请求
    response = requests.get(url, headers=head)

    # 3、获取响应的数据
    res_text = response.text
    print(res_text)
    #4.数据解析
    tree = etree.HTML(res_text)

    with open("bi.html","w",encoding="utf8") as f:
        f.write(res_text)


    base_info = "".join(tree.xpath("/html/head/script[4]/text()"))[20:]
    print(base_info)

    info_dict = json.loads(base_info)
    print(info_dict)

    video_url = info_dict["data"]["dash"]['video'][0]["baseUrl"]
    audio_url = info_dict["data"]["dash"]['audio'][0]["baseUrl"]

    video_content = requests.get(video_url,head).content
    audio_content = requests.get(audio_url,head).content

    with open("video.mp4","wb") as f:
        f.write(video_content)
    with open("audio.mp4","wb") as fp:
        fp.write(audio_content)
pass

这段代码的主要目的是从网站获取一个视频的视频流和音频流,并将它们分别保存到本地文件中。下面是代码的详细解释:

1.导入必要的库:

json:用于处理JSON数据。
requests:用于发送HTTP请求。
lxml.etree:用于解析HTML和XML文档。

2.设置请求头:

创建一个字典head,包含模拟浏览器访问的User-Agent、防止防盗链的Referer以及一个示例的Cookie(注意,这里的User-Agent、Referer、Cookie仅仅只是样例)。
想要找到正确的User-Agent、防止防盗链的Referer以及一个示例的Cookie,可以通过打开电脑键盘F12,然后点击显示界面网络,找到名称一列的第一个项目,从标头里面可以找到相应的目标。
图例:
在这里插入图片描述

3.指定URL:

这里的url的获取方法同上。

4.发送请求:

使用requests.get方法发送HTTP GET请求到指定的URL,并将请求头设置为之前创建的head。(注意:请求方法可以通过类似url的获取方式查询)
图例:
在这里插入图片描述

5.获取响应数据:

从响应中获取HTML内容,并将其存储在变量res_text中。
打印整个HTML内容(这一步通常用于调试)。

6.保存HTML到文件:

将HTML内容写入到名为bi.html的文件中,用于后续分析或备份。

7.解析HTML以获取视频和音频信息:

使用lxml.etree解析HTML内容,并尝试从标签中的第四个

8.提取视频和音频的URL:

从解析后的字典中提取视频和音频的baseUrl。

9.下载视频和音频内容:

分别对视频和音频的URL发送GET请求,并将响应的内容(即视频和音频的二进制数据)保存到本地文件中。注意,这里将音频也保存为.mp4文件,但通常音频文件会使用.m4a、.aac或其他音频格式的文件扩展名。

注意:

硬编码的Cookie和直接从HTML中提取JSON字符串的方法(特别是通过指定

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

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

相关文章

一款国外开发的高质量WordPress下载站模板主题

5play下载站是由国外站长开发的一款WordPress主题,主题简约大方,为v1.8版本, 该主题模板中包含了上千个应用,登录后台以后只需要简单的三个步骤就可以轻松发布apk文章, 我们只需要在WordPress后台中导入该主题就可以…

《简历宝典》17 - 简历中“技术能力”,如何丰满且有层次,前端篇

这一节开始对技术能力模块做讲解,我们身边的这些互联网IT从业者们,前端开发、Java开发、软件测试又或者是其他职位的开发者们,技术能力这个模块是绕不过去的,从简历上看,这个模块体现了我们之前软件工作生涯中的技术功…

二、C#数据类型

本文是网页版《C# 12.0 本质论》第二章解读。欲完整跟踪本系列文章,请关注并订阅我的Essential C# 12.0解读专栏。 前言 数据类型(Data Type)是一个很恼人的话题。 似乎根本没必要对数据类型进行展开讲解,因为人人都懂。 但是…

Ubuntu 24.04 LTS Noble安装Docker Desktop简单教程

Docker 为用户提供了在 Ubuntu Linux 上快速创建虚拟容器的能力。但是,那些不想使用命令行管理容器的人可以在 Ubuntu 24.04 LTS 上安装 Docker Desktop GUI,本教程将提供用于设置 Docker 图形用户界面的命令…… Docker Desktop 是一个易于使用的集成容…

IVI(In-Vehicle Infotainment,智能座舱的信息娱乐系统)

IVI能够实现包括三维导航、实时路况、辅助驾驶等在线娱乐功能。 IVI人机交互形式(三板斧):声音、图像、文字 IVI人机交互媒介I(四件套):中控屏幕(显示、触控)、仪表显示、语言、方…

Python爬虫(2) --爬取网页页面

文章目录 爬虫URL发送请求UA伪装requests 获取想要的数据打开网页 总结完整代码 爬虫 Python 爬虫是一种自动化工具,用于从互联网上抓取网页数据并提取有用的信息。Python 因其简洁的语法和丰富的库支持(如 requests、BeautifulSoup、Scrapy 等&#xf…

规范:前后端接口规范

1、前言 随着互联网的高速发展,前端页面的展示、交互体验越来越灵活、炫丽,响应体验也要求越来越高,后端服务的高并发、高可用、高性能、高扩展等特性的要求也愈加苛刻,从而导致前后端研发各自专注于自己擅长的领域深耕细作。 然…

SpringCloud极限速通版

1.SpringCloud概述 1.1 什么是微服务 1.1.1 单体架构 业务所有功能都打包在一个war包或jar包,这种方式就是单体架构,单体架构的应用就是单体应用。这种架构开发简单,部署简单,一个项目包含所有功能;省去了多个项目之…

图片上传成功却无法显示:静态资源路径配置问题解析

1、故事的背景 最近,有个学弟做了一个简单的后台管理页面。于是他开始巴拉巴拉撘框架,写代码,一顿操作猛如虎,终于将一个简单的壳子搭建完毕。但是在实现功能:点击头像弹出上传图片进行头像替换的时候,卡壳…

力扣高频SQL 50 题(基础版)第一题

文章目录 力扣高频SQL 50 题(基础版)第一题1757.可回收且低脂的产品题目说明思路分析实现过程准备数据:实现方式:结果截图: 力扣高频SQL 50 题(基础版)第一题 1757.可回收且低脂的产品 题目说…

昇思25天学习打卡营第14天 | SSD目标检测

探索SSD目标检测算法 在深入学习SSD(Single Shot MultiBox Detector)目标检测算法的过程中,我对现代计算机视觉中的目标检测技术有了更加深入的理解。SSD作为一种有效的单阶段目标检测算法,它在准确性和检测速度之间取得了良好的…

HAL库源码移植与使用之RTC时钟

实时时钟(Real Time Clock,RTC),本质是一个计数器,计数频率常为秒,专门用来记录时间。 普通定时器无法掉电运行!但RTC可由VBAT备用电源供电,断电不断时 这里讲F1系列的RTC 可以产生三个中断信号&#xff…

分类损失函数 (一) torch.nn.CrossEntropyLoss()

1、交叉熵 是一种用于衡量两个概率分布之间的距离或相似性的度量方法。机器学习中,交叉熵常用于损失函数,用于评估模型的预测结果和实际标签的差异。公式: y:真是标签的概率分布,y:模型预测的概率分布 …

FPGA实验3:D触发器设计

一、实验目的及要求 熟悉Quartus II 的 VHDL 文本设计简单时序电路的方法; 掌握时序电路的描述方法、波形仿真和测试,特别是时钟信号的特性。 二、实验原理 运用Quartus II 集成环境下的VHDL文本设计方法设计简单时序电路——D触发器,依据…

【Godot4.2】GodotXML插件 - 解析和生成XML

概述 近期在研究基于Godot的XML和SVG解析,并且在昨天(2024年7月20日)编写了一个简易的SVG文件解析器。 在群友的提示下,知道早就存在GodotXML这样的解析器。所以今天就来测试使用并准备研究学习源代码了。和以往一样&#xff0c…

康康近期的慢SQL(oracle vs 达梦)

近期执行的sql,哪些比较慢? 或者健康检查时搂一眼状态 oracle: --最近3天内的慢sql set lines 200 pages 100 col txt for a65 col sql_id for a13 select a.sql_id,a.cnt,a.pctload,b.sql_text txt from (select * from (select sql_id,co…

MySQL0.MSI方式安装

本机运行环境:Windows10 1.下载 进入MySQL官方下载页面:https://downloads.mysql.com/archives/installer/ 红色箭头:点击选择下载的版本 黄色箭头:点击下载MSI安装包 此次下载选择MySQL8.0.37的MSI安装包 2.安装 下载完毕后…

微信小程序开发:基础架构与配置文件

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

SecureCRT (mac or windows)解决中文显示乱码

中文乱码问题的方法主要包括设置SecureCRT的编码为UTF-8以及设置LANG环境变量为zh_CN.UTF-8。‌ 1.设置SecureCRT的编码为UTF-8:‌ 打开SecureCRT,‌进入Options -> Global Options -> Default Session -> Edit Default Settings-> Appear…