Python爬虫项目 | 一、网易云音乐热歌榜歌曲

ops/2024/11/18 1:05:01/

文章目录

  • 1.文章概要
    • 1.1 实现方法
    • 1.2 实现代码
    • 1.3 最终效果
  • 2.具体讲解
    • 2.1 使用的Python库
    • 2.2 代码说明
      • 2.2.1 创建目录保存文件
      • 2.2.2 爬取网易云音乐热歌榜单歌曲
    • 2.3 过程展示
  • 3 总结

1.文章概要

学习Python爬虫知识,实现简单的一个小案例,网易云音乐热歌榜歌曲

1.1 实现方法

本文使用Python中常用的requests库来实现的

1.2 实现代码

以下是本项目全部代码

python"># author by mofitte
# vx:mofitte 
# date 2024年11月13日import requests,re,osfilename = 'music\\'
if not os.path.exists(filename):os.makedirs(filename)url = "https://music.163.com/discover/toplist?id=3778678"  # 网易云音乐热歌榜单页面
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36'}response = requests.get(url, headers=headers)
# print(response.text)
html_data = re.findall('<li><a href="/song\?id=(\d+)">(.*?)</a>', response.text)
for song_id, song_name in html_data:music_url = f'http://music.163.com/song/media/outer/url?id={song_id}.mp3'# 对于音乐播放地址发送请求 获取二进制数据内容music_content = requests.get(url=music_url, headers=headers).contentwith open(filename + song_name + '.mp3', mode='wb') as f:f.write(music_content)print(song_id, song_name)print('爬虫任务已完成')

1.3 最终效果

爬取结果

2.具体讲解

2.1 使用的Python库

1.requests:一个简单易用的 Python 库,用于发送 HTTP 请求;
2.os: Python 的一个内置库,提供了许多操作文件和目录的功能;
3.re:用于处理正则表达式,它提供了一系列功能强大的函数,用于字符串的搜索、替换、匹配等操作;

2.2 代码说明

2.2.1 创建目录保存文件

python"># author by mofitte
# vx:mofitte 
# date 2024年11月13日import requests,re,os
filename = 'music\\'
if not os.path.exists(filename):os.makedirs(filename)

在PC上创建filename目录(这里我用的是Windows系统),用于保存后续爬取下来的音乐文件;

2.2.2 爬取网易云音乐热歌榜单歌曲

python">url = "https://music.163.com/discover/toplist?id=3778678"  # 网易云音乐热歌榜单页面
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36'}response = requests.get(url, headers=headers)
# print(response.text)
html_data = re.findall('<li><a href="/song\?id=(\d+)">(.*?)</a>', response.text)
for song_id, song_name in html_data:music_url = f'http://music.163.com/song/media/outer/url?id={song_id}.mp3'# 对于音乐播放地址发送请求 获取二进制数据内容music_content = requests.get(url=music_url, headers=headers).content

爬取音乐核心代码块
url:这里我选择的是热歌榜单,你也可以直接替换为你想要爬取的榜单,直接运行也是可以的;
headers:模拟浏览器行为访问上述url,这个没啥可说的;
response:获取响应,这里是get了url和headers
html_data:获取音乐数据,通过正则表达式匹配音乐id和音乐名称;
music_url:下载音乐路径,可以在浏览器打开试听音乐;

2.3 过程展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3 总结

本案例是采用了requests库来简单获取数据,下载音乐,过程还是相对简单的;更复杂的内容,可能需要其他技术来实现,继续学习。

看到这里了,我只希望能点个赞,谢谢


http://www.ppmy.cn/ops/134585.html

相关文章

【设计模式】结合Tomcat源码,分析外观模式/门面模式的特性和应用场景

导航&#xff1a; 【Java笔记踩坑汇总】Java基础JavaWebSSMSpringBootSpringCloud瑞吉外卖/谷粒商城/学成在线设计模式面试题汇总性能调优/架构设计源码解析 目录 一、经典的组建家庭影院流程 二、传统方式解决影院管理 2.1 实现方案&#xff1a;客户端直接调用各流程 2.2 …

css鼠标移动效果高亮追随效果

如图所示&#xff0c;鼠标移动有一块高亮随着鼠标移动。代码如下&#xff1a;(vue3篇) <div class"container"><span class"use-hover-hglh-element trail" :style"isShow ? dyStyle : { opacity: 0 }"></span></div>…

【蓝桥等考C++真题】蓝桥杯等级考试C++组第13级L13真题原题(含答案)-最大的数

CL13 最大的数(20 分) 输入一个有 n 个无重复元素的整数数组 a&#xff0c;输出数组中最大的数。提示&#xff1a;如使用排序库函数 sort()&#xff0c;需要包含头文件#include 。输入&#xff1a; 第一行是一个正整数 n(2<n<20)&#xff1b; 第二行包含 n 个不重复的整…

JWT深度解析:Java Web中的安全传输与身份验证

标题&#xff1a;JWT深度解析&#xff1a;Java Web中的安全传输与身份验证 引言 JSON Web Token&#xff08;JWT&#xff09;是一种轻量级的身份验证和授权标准&#xff0c;它允许在各方之间安全地传输信息。在Java Web开发中&#xff0c;JWT因其无状态、可扩展性和跨域支持而…

现代密码学|古典密码学例题讲解|AES数学基础(GF(2^8)有限域上的运算问题)| AES加密算法

文章目录 古典密码凯撒密码和移位变换仿射变换例题多表代换例题 AES数学基础&#xff08;GF&#xff08;2^8&#xff09;有限域上的运算问题&#xff09;多项式表示法 | 加法 | 乘法X乘法模x的四次方1的乘法 AES加密算法初始变换字节代换行移位列混合轮密钥加子密钥&#xff08…

第八章 获取Stream流的两种方式

目录 一、获取Stream流的两种方式 二、根据Collection获取流 三、Stream中的静态方法of获取流 一、获取Stream流的两种方式 根据Collection获取流&#xff1a;所有的 Collection 集合都可以通过 stream 默认方法获取流 Stream中的静态方法of获取流 java.util.stream.Stream&l…

Linux---常用shell脚本

目录 一.网络服务 开启network服务 网口IP配置 聚合口配置 前言 秋招拿到了科大讯飞的offer&#xff0c;可是由于某些原因无法完成三方签署&#xff0c;心情还是比较失落的&#xff0c;或许写一篇技术博客&#xff0c;活跃一下大脑思维也是一种不错的放松方式。 一.网络服务 …

开源项目低代码表单设计器FcDesigner扩展右侧组件的配置规则

在开源项目低代码表单设计器 FcDesigner 中&#xff0c;您可以通过定制化的配置规则来扩展组件的功能&#xff0c;从而满足特定的业务需求。这些配置规则如 baseRule、formRule、componentRule 和 appendConfigData 提供了一种灵活的方法来控制组件、表单的行为和外观。以下是对…