当前位置: 首页 > news >正文

爬虫爬取mp3文件例子

相信训练模型时数据集的获取也是一个很头疼的事情,搞cv领域的可以扛着摄像头架起三脚架拍摄获取(以前干过),但是如果是nlp领域的呢,特别是chatgpt等大模型出来后对这类文本等数据的需求更大,如果没有现成的数据集的话基本上很难自己创造数据,所以爬取视为其中一个手段获取数据(但是提醒一下要合法获取数据哦)。
那么下面就以简单的批量获取mp3文件为例。

假设我们要获取网易云飙升榜的所有音乐文件:
在这里插入图片描述
地址为:https://music.163.com/#/discover/toplist?id=19723756
首先f12打开开发者工具:
在这里插入图片描述
选择network,然后根据歌曲名复制到搜索框,然后点击清理按键清理所有的请求信息。
然后点击刷新页面,可以看到出现了很多新的请求信息,这里打开抓包再开始请求是因为刚才的请求信息可能是有延迟的请求信息,并不全,这里重新获取的比较全面。
在这里插入图片描述
在左边搜索框搜索出来的点击就可以看到定位到的位置,在li标签的a标签里面,接下来我们先查看请求信息get获取一下信息打印出来看看:
在这里插入图片描述
在这里插入图片描述

选择headers,要获取两个信息,一个是url,一个是request headers底下的user agent。复制这两个信息开始下面的代码:

import requests   
import re   # 正则表达式的库url = "https://music.163.com/discover/toplist?id=19723756"
headers = {"user-agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36"
}
response = requests.get(url=url, headers=headers)
print(response.text)

在这里插入图片描述
运行后打印出获取到的信息,接下来开始从中提取想要的内容,ctrl f定位到歌名可以看到是包裹在li标签中,因为我们想要下载的是mp3格式的文件,看到mp3的下载地址的组成包括id,而id就是和歌名一一对应的,所以我们for循环获取每个歌名及id来下载对应的mp3文件:
我们先拿这个“双星”举例,他的组成是这样的:<li><a href="/song?id=2068206782">双星</a></li>,所以我们可以用正则表达式来通用表示所有的歌名的标签组成:<li><a href="/song\?id=(\d+)">(.*?)</a>,代码如下:

html_data = re.findall('<li><a href="/song\?id=(\d+)">(.*?)</a>', response.text)
# print(html_data)
for num_id, title in html_data:music_url = f"http://music.163.com/song/media/outer/url?id={num_id}.mp3"  # mp3文件地址music_content = requests.get(url=music_url, headers=headers).contentwith open("/home/alpha/桌面/results/" + title + ".mp3", mode="wb") as f:   # 下载每个mp3文件f.write(music_content)print(num_id, title)

运行结果:
在这里插入图片描述
这样就爬取下当前页面下全部的mp3文件了。

相关文章:

爬虫爬取mp3文件例子

相信训练模型时数据集的获取也是一个很头疼的事情&#xff0c;搞cv领域的可以扛着摄像头架起三脚架拍摄获取&#xff08;以前干过&#xff09;&#xff0c;但是如果是nlp领域的呢&#xff0c;特别是chatgpt等大模型出来后对这类文本等数据的需求更大&#xff0c;如果没有现成的…...

说说什么是间隙锁

分析&回答 间隙锁为了解决RR&#xff08;可重复读&#xff09;级别下当前读导致的幻读问题&#xff0c;锁的对象是索引叶子节点的next指针。 快照读 在RR隔离级别下&#xff1a;快照读有可能读到数据的历史版本&#xff0c;也有可能读到数据的当前版本。所以快照读无需用…...

python小题库(三)

大家好呀&#xff0c;今天继续更新python小题库。 题11&#xff1a;实现学生成绩排序 # 问题&#xff1a;实现学生成绩排序 # 如学生的成绩是字典形式 students [{"sno": 101, "sname": "小张", "sgrade": 88},{"sno": 10…...

【前端设计模式】之单例模式

在前端开发中&#xff0c;单例模式是一种常见的设计模式&#xff0c;用于确保一个类只有一个实例&#xff0c;并提供全局访问点。在实现单例模式时&#xff0c;有一些最佳实践和高级技巧可以帮助我们编写更优雅和可维护的代码。 1. 使用闭包 使用闭包是实现单例模式的一种常见…...

Linux——(第六章)常用指令(一)

目录 一、帮助指令 1.man获取帮助信息 2.help指令 3.常用快捷键 二、文件和目录相关指令 1.pwd 指令 2.ls 指令 3.cd 指令 4.mkdir 指令 5.rmdir指令 6.touch指令 7.cp 指令 8.rm 指令 9.mv 指令 10.cat 指令 11.more 指令 12.less 指令 13.echo 指令 14.he…...

第19章_瑞萨MCU零基础入门系列教程之RTC

本教程基于韦东山百问网出的 DShanMCU-RA6M5开发板 进行编写&#xff0c;需要的同学可以在这里获取&#xff1a; https://item.taobao.com/item.htm?id728461040949 配套资料获取&#xff1a;https://renesas-docs.100ask.net 瑞萨MCU零基础入门系列教程汇总&#xff1a; ht…...

6、Spring之依赖注入源码解析(上)

依赖注入底层原理流程图: Spring中Bean的依赖注入原理| ProcessOn免费在线作图,在线流程图,在线思维导图 Spring中到底有几种依赖注入的方式? 首先分两种: 手动注入自动注入手动注入 在XML中定义Bean时,就是手动注入,因为是程序员手动给某个属性指定了值。 <bean n…...

vscode各种配置的方法

一. vscode配置 vscode 是微软公司提供的一个 代码编辑器。是做C/C常用的编辑器。 在安装后&#xff0c;可以根据自己需要自行安装常用的配置插件。同时&#xff0c;也可以在设置栏设置自己需要的功能&#xff0c;以方便使用。 下面学习 vscode的几种常见的设置。 二. vsco…...

每天几道面试题(第一天)

目录 第一幕 、第一场&#xff09;某大厦楼下大门前第二场&#xff09;电梯中第三场&#xff09;走廊中 友情提醒 背面试题很枯燥&#xff0c;加入一些戏剧场景故事人物来加深记忆。PS:点击文章目录可直接跳转到文章指定位置。 第一幕 、 第一场&#xff09;某大厦楼下大门前…...

[paddle]paddlepaddle官方安装命令合集

官方最新安装命令&#xff1a; https://www.paddlepaddle.org.cn/install/quick?docurl/documentation/docs/zh/install/pip/windows-pip.html 历史命令&#xff1a; V2.4 环境支持 Python 版本 3.6/3.7/3.8/3.9/3.10 PIP安装方式 Windows 安装 GPU版本支持CUDA 10.2/11.…...

使用JS实现一个简单的观察者模式(Observer)

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 手撸Observer⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领…...

智能井盖传感器:高效守护城市道路安全

近年来&#xff0c;井盖出问题导致事故的报道时有发生&#xff0c;但却容易被公众所忽视。井盖作为城市基础设施的一部分&#xff0c;主要用于保护下方的供水管道、下水道以及电信线缆等。然而&#xff0c;由于长时间使用、缺乏维护、设计不合理等原因&#xff0c;井盖出现问题…...

pycharm创建py文件时自动添加基础信息--模板

在图片中加入下面基本信息&#xff0c;这些基本信息可以自己定义&#xff1a; #!/usr/bin/env python # -*- coding: utf-8 -*- # Time : ${DATE} ${TIME} # Author : supermps # File : ${NAME}.py # Software : ${PRODUCT_NAME} import logging import math import w…...

Notpad++常用正则表达式替换案例集锦

1、在每行的开头加上单引号 2、在每行的结尾加上单引号 3、“删除”某个关键字之前字符串 原始字符串&#xff1a; 注&#xff1a;仅保留含有"[条件日志]:"之后的内容&#xff0c;“日志:”前面的内容“删除”掉&#xff0c;即替换为“”。 4、“删除”某个关键字…...

DGA行为转变引发了对网络安全的担忧

Akamai的研究人员发现&#xff0c;在域名系统(DNS)流量数据中&#xff0c;动态种子域生成算法(DGA)家族的行为发生了令人担忧的变化。这一发现揭示了恶意行为者如何调整他们的策略来延长他们的指挥与控制(C2)通信通道的寿命&#xff0c;以保护他们的僵尸网络。 从技术角度来看…...

微信小程序开发---页面导航

目录 一、页面导航的概念 二、页面导航的实现 &#xff08;1&#xff09;声明式导航 1、概念 2、导航到tabBar页面 3、导航非tabBar页面 4、后退导航 &#xff08;2&#xff09;编程式导航 1、导航到tabBar页面 2、导航到非tabBar页面 3、后退导航 三、导航传参 &…...

torch.nn中的L1Loss和MSELoss

我们打开Pytorch官网&#xff0c;找到torch.nn中的loss function&#xff0c;进去如下图所示。 L1LOSS 我们先来看看 L1LOSS 损失函数的使用。下图是官网给出的描述。 L1loss有两种方式&#xff0c;一种是将所有误差累加作为总损失&#xff0c;另一种是将所有误差累加之后求平…...

Speech | 语音处理,分割一段音频(python)

本文主要是关于语音数据在处理过程中的一些脚本文件以及实例&#xff0c;所有代码只需要更改所需处理的文件路径&#xff0c;输出路径等&#xff0c;全部可运行。 目录 所需环境 方法1&#xff1a;将一整段音频按时间批量切成一个一个音频 方法2&#xff1a;将一整段音频按…...

【深度学习】 Python 和 NumPy 系列教程(三):Python容器:1、列表List详解(初始化、索引、切片、更新、删除、常用函数、拆包、遍历)

目录 一、前言 二、实验环境 三、Python容器&#xff08;Containers&#xff09; 0、容器介绍 1、列表&#xff08;List&#xff09; 1. 初始化 a. 创建空列表 b. 使用现有元素初始化列表 c. 使用列表生成式 d. 复制列表 2. 索引和切片 a. 索引 b. 负数索引 c. 切…...

【C++笔记】C++string类模拟实现

【C笔记】Cstring类模拟实现 一、实现模型和基本接口1.1、各种构造和析构1.2、迭代器 二、各种插入和删除接口2.1、插入接口2.2、删除接口2.3、resize接口 三、各种运算符重载3.1、方括号运算符重载3.2、各种比较运算符重载 四、查找接口4.1、查找字符4.2、查找子串 五、流插入…...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

谷歌浏览器插件

项目中有时候会用到插件 sync-cookie-extension1.0.0&#xff1a;开发环境同步测试 cookie 至 localhost&#xff0c;便于本地请求服务携带 cookie 参考地址&#xff1a;https://juejin.cn/post/7139354571712757767 里面有源码下载下来&#xff0c;加在到扩展即可使用FeHelp…...

手游刚开服就被攻击怎么办?如何防御DDoS?

开服初期是手游最脆弱的阶段&#xff0c;极易成为DDoS攻击的目标。一旦遭遇攻击&#xff0c;可能导致服务器瘫痪、玩家流失&#xff0c;甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案&#xff0c;帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来

一、破局&#xff1a;PCB行业的时代之问 在数字经济蓬勃发展的浪潮中&#xff0c;PCB&#xff08;印制电路板&#xff09;作为 “电子产品之母”&#xff0c;其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透&#xff0c;PCB行业面临着前所未有的挑战与机遇。产品迭代…...

Admin.Net中的消息通信SignalR解释

定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

页面渲染流程与性能优化

页面渲染流程与性能优化详解&#xff08;完整版&#xff09; 一、现代浏览器渲染流程&#xff08;详细说明&#xff09; 1. 构建DOM树 浏览器接收到HTML文档后&#xff0c;会逐步解析并构建DOM&#xff08;Document Object Model&#xff09;树。具体过程如下&#xff1a; (…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式&#xff08;Python 实现&#xff09; 在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是&#xff0c;.doc 是旧的 Word 格式&#xff0c;而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

Neo4j 集群管理:原理、技术与最佳实践深度解析

Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...

CMake控制VS2022项目文件分组

我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

以光量子为例,详解量子获取方式

光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学&#xff08;silicon photonics&#xff09;的光波导&#xff08;optical waveguide&#xff09;芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中&#xff0c;光既是波又是粒子。光子本…...