爬虫爬取mp3文件例子

2023-11-08

相信训练模型时数据集的获取也是一个很头疼的事情,搞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).content
    with open("/home/alpha/桌面/results/" + title + ".mp3", mode="wb") as f:   # 下载每个mp3文件
        f.write(music_content)
    print(num_id, title)

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

爬虫爬取mp3文件例子 的相关文章

随机推荐

  • Vue 中 computed ,watch,methods 的异同

    methods watch和computed都是以函数为基础的 computed 和 watch 都可以观察页面的相应式数据的变化 当处理页面的数据变化时 我们有时候很容易滥用watch 而通常更好的办法是使用computed计算属性 而不
  • h5 video视频播放的同时加水印,图片加水印同样的原理

    经常能看到播放视频的网站上加水印的效果 记录下成果以备后续看 效果图如下 h5页面视频播放的同时加水印 有以下3种方法可尝试 在原视频上添加 由于每次登陆的用户不一样 需要根据用户名动态确定水印的文本值 这并不现实 捕捉视频的每一帧 重新画
  • Java集合面试题

    目录 1 Java中集合的框架图 2 常用集合的分类 3 List接口详解 3 1 ArrayList集合类 3 2 LinkedList集合类 3 3 Vector集合类 4 Map接口详解 4 1 HashMap集合类 4 2 Hash
  • MOS管规格书参数解析

    在这之前 首先了解下三极管和MOS管的区别 三极管是电流控制型的器件 通过基极电流去控制集电极电流 实现电流 电压信号放大或者驱动负载工作 场效应管是电压控制器件 需要通过栅极 G 电压来控制场效应的导通 实现场效应的导通和关断 三极管由两
  • html使用vue3.0必须使用element plus

    开发环境 html用的vue2 x版本配合elementui 现要求使用vue3 x版本 发现必须elementui只能适用vue2 x 故使用element plus 由于并非vue文件 现通过CDN方式导入
  • 【Visual C++】游戏开发笔记三十五 站在巨人的肩膀上 游戏引擎导论

    本系列文章由zhmxy555 毛星云 编写 转载请注明出处 文章链接 http blog csdn net zhmxy555 article details 8250057 作者 毛星云 浅墨 邮箱 happylifemxy 163 com
  • Redis总结

    Redis 1 NoSQL的引言 NoSQL Not Only SQL 意即不仅仅是SQL 泛指非关系型的数据库 Nosql这个技术门类 早期就有人提出 发展至2009年趋势越发高涨 2 为什么是NoSQL 随着互联网网站的兴起 传统的关系
  • 黑苹果睡眠无法唤醒(OC引导)

    NVRAM 随机访问存储器设置 UUID 7C436110 AB2A 4BBB A880 FE41995C9F82 键 boot args 添加值 igfxonln 1
  • 2018老男孩脱产班linux运维51期

    2018老男孩脱产班linux运维51期 2018老男孩脱产班linux运维51期 2018老男孩脱产班linux运维51期 2018老男孩脱产班linux运维51期 链接 https pan baidu com s 1bnIJF6IoBC
  • Linux网络配置实验

    Linux的网络配置分为两种 手动和自动 下面我们先配置好Linux外面的设置 后面再去终端用命令行配置 框起来的网址记住 后面要用上 这里开始打开终端 用命令行配置 这是手动配置的 将前面记下来的网址适当填入对应的位置 对照这种图稍作修改
  • PBFT(拜占庭容错)

    PBFT 拜占庭容错 基于拜占庭将军问题 一致性的确保主要分为这三个阶段 预准备 pre prepare 准备 prepare 和确认 commit 流程如下图所示 其中C为发送请求端 0123为服务端 3为宕机的服务端 具体步骤如下 1
  • MySQL数据库查询默认是按什么进行排序的

    文章中所有操作均是在 MySQL 5 7 版本下进行的 引入问题 MySQL 普通查询它是按照什么进行排序的 我们稍微讨论下这个问题 我们先引入一个测试表 drop table if exists tbl test create table
  • Swagger 整合 Spring Boot

    title Swagger 整合 Spring Boot date 2021 10 1 tags spring springboot swagger categories spring springboot Swagger 整合 Sprin
  • Relation-Aware Global Attention for Person Re-identification (cvpr2020)

    首先这是一篇科大和微软亚研院的文章 文章很优美 非常值得一阅 本文主要是针对行人重识别提出一种从局部之间的关系找到相关性从而生成注意力的方法 可以理解成继承 Non local 或者 self attention 的方法 虽然理念相似 这些
  • 【css】css3动画实现鼠标悬停按钮动画

    html a href span span Button a css body margin 0 padding 0 font family sans serif a position absolute top 50 left 50 tra
  • 【20201023期AI简报】OpenCV 4.5 发布、NVIDIA开源NeMo,更多精彩点我!

    导读 本期为 AI 简报 20201023 期 将为您带来过去一周关于 AI 新闻 12 条 其他互联网圈内新闻10 条 希望对您有所帮助 有更好的建议或者意见请在下方留言 AI 1 OpenCV 4 5 发布 DNN 模型在 ARM 平台
  • 数据库表的各种连接(内连接,外连接)

    关系型数据库 以关系代数为理论基础 1 用表 Table 表示关系或者实体 2 用行 Row 表示元组 3 用列 Col 表示属性 关系代数包含以下8个关系运算符 单表操作 1 选取 返回满足指定条件的行 2 投影 从数据集合中返回指定的列
  • Vue和React的优缺点

    Vue和React是目前最流行的前端框架之一 它们都有自己的优点和缺点 在这篇文章中 我将会详细介绍Vue和React的优缺点 并给出一些建议 帮助你选择适合自己的框架 一 Vue的优点 1 简单易学 Vue的语法简单易懂 学习曲线较为平缓
  • 关于U盘制作启动盘后内存变小问题的解决

    不需任何工具 只需要输入几个简单命令即可 1 U盘插入电脑然后运行windows的命令窗口 命令窗口打开方式win R后输入 cmd或点击开始菜单 gt gt 运行 gt gt 输入cmd 2 在命令行输入diskpart然后回车 如图所示
  • 爬虫爬取mp3文件例子

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