引子:记得高中的时候,一位同桌是五月天的超级粉丝,一下课就大声哼唱(丝毫不在意旁边人的感受,哈哈),刚开始还挺烦的(我下课要赶紧补觉),后来也就慢慢的习惯了,以至于五月天的歌曲成为了记忆中青涩而又躁动的青春的触发器。刚好最近在学习Python3网络爬虫,如是想把网易云音乐上面的关于五月天的歌曲及歌词给下载下来,下面将详细的介绍操作过程。

1. 总体思路分析

在行动之前,首先想象一下我们要将目标歌曲及歌词下载下来,需要经过哪些步骤?

Python资源共享群:484031800

爬虫思路

按照上面的大体思路,我们可以自定义函数模拟爬取过程。

2. 具体爬取步骤

2.1 获取网页

导入包

获取网页

我们使用的是requests库来获取网页,其中请求头head中的参数信息可以从网站上粘贴过来:

请求头信息

可以看到这里面的请求头参数中并没有 ‘Host’ 的参数信息,因此在上面的自定义函数中可以不用这个参数。

2.2 网页解析

接下来我们就可以用beautifulsoup来解析网页了:

网页解析

上面函数中find中要查找的内容需要我们肉眼从网站源代码中搜寻:

网易云音乐用户界面

网页源码

从上面的观察中我们可以发现,我们需要获取的歌曲信息都在源码属性 class='f-hide'的<ul>标签中,而后面的 herf='/song?id=55331024' 中的 id 信息则是每一首曲子的地址。根据这些信息再去理解我们上面写的函数就比较清晰了。

2.3 信息提取

按照上面的写法,获取的信息里面还有很多我们不想要的杂质,因此为了获取更纯净的歌词信息,我们找到了网易云音乐的API,只要把歌曲的ID放在API链接上便可以获取歌词了。在API中歌词信息是以json格式加载的,所以需要利用json将其进行序列化解析出来,并配合正则表达式进行清洗歌词。具体代码如下:

歌词提取

这样的话我们就能获取每一首音乐的歌词了。

2.4 歌词存储

接下来我们将刚刚提取的歌曲歌词存储在指定的文件夹中:

存储歌词

这一步比较简单,需要强调的是文件的写入格式,‘a’表示的是以追加方式打开一个文件。如果该文件已存在,文件指针将会放在文件结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,则创建新文件来写入。

2.5 下载并存储歌曲

除了下载歌词外,我们还有一个任务就是要将曲子给下载下来:

下载并保存歌曲

这里面我们用到的是 urllib.request 版块中的urlretrieve函数,该函数的作用是将远程数据下载到本地。

2.6 主函数

以上,我们将主要的函数都完成了,接下来的工作便是将这些函数进行组合已达到我们爬取的目的。

主函数

在主函数中,我们用到了异常处理机制,因为我们在爬取的过程中发现有些歌曲的命名方式的问题导致存储失败,从而造成程序出现bug,这里截取的 FileNotFoundError 异常就是主要避免这种问题。

2.7 运行结果

运行以上所有的函数,如果正常的话将会出现如下的结果:

运行的结果

其中我们需要输入歌手的 ID,这个可以在网易云音乐上查找出来。

然后,我们可以在本地的文件中找到两个文件夹 "lyrics1"和"songs1",其中前者存放的是歌词,后者存放的是曲子。我们分别打开看看:

爬取的歌词

爬取的歌曲

接下来,我们可以好好的享受一下我们的劳动成果了。

结语:越来越觉得通过这种输出方式来学习是一种非常有效的方法,然后最重要的是能体会到快乐。希望本文能够帮助到需要的人...

基于Python3爬取并下载网易云歌曲!相关推荐

  1. Python下载网易云歌曲(版权限制的怎么播放和下载呢?) 1

    为什么要这样下载 网易云音乐,我相信大多数人都用过,我个人觉得非常好用,也一直在用,有的时候,我们搜索一些网易歌曲,发现播放不了,甚至下载不了,因为提示"版权方要求,当前歌曲仅限开通音乐包使 ...

  2. 爬虫搜索并下载网易云歌曲

    首先展示下成果 过程中使用到的知识:selenium,request,正则表达式, # author:浸 # time:2021/1/31 10:07 # file:WyyMusic.py # use ...

  3. 不登录,不用任何技术,一分钟下载网易云音乐

    最近在写 Python 爬虫,想爬取网易云的歌曲并下载或者保存 Url 到 MongoDB,发现了一个可以快速下载网易云歌曲的方式,不需要登录,也不需要什么技术,简单几步就可以网易云上的音乐. 因此分 ...

  4. python爬取并下载代码_python 爬取并批量下载网易云歌单源代码

    #!/usr/bin/env python#!--*--coding:utf-8 --*-- #![url=home.php?mod=space&uid=238618]@Time[/url]  ...

  5. python 爬虫爬取下载网易云音乐歌单的歌曲(需要使用JS的加密方法得出params去获取下载地址)

    要点:1.js加密就是麻烦,只能百度寻找了!设计的加密模块binascii.Crypto.base64 2.requests.Session的用法,可以指定headers.cookies 3.可以用s ...

  6. Python3批量下载网易云音乐热歌榜

    Python3批量下载网易云音乐热歌榜 可以批量下载网易云音乐热歌榜的歌曲,可以自己设定数量,速度非常快. https://music.163.com/#/discover/toplist?id=37 ...

  7. Python3爬取企查查网站的企业年表并存入MySQL

    Python3爬取企查查网站的企业年表并存入MySQL 本篇博客的主要内容:爬取企查查网站的企业年报数据,存到mysql中,为了方便记录,分成两个模块来写: 第一个模块是爬取数据+解析数据,并将数据存 ...

  8. python基于scrapy爬取京东笔记本电脑数据并进行简单处理和分析

    这篇文章主要介绍了python基于scrapy爬取京东笔记本电脑数据并进行简单处理和分析的实例,帮助大家更好的理解和学习使用python.感兴趣的朋友可以了解下 一.环境准备 python3.8.3 ...

  9. Python3爬取迅捷语音转文字(包含持久化登陆和分片上传文件)

    前言 在这里我就不再一一介绍每个步骤的具体操作了,因为在上一次爬取今日头条数据的时候都已经讲的非常清楚了,所以在这里我只会在重点上讲述这个是这么实现的,如果想要看具体步骤请先去看我今日头条的文章内容, ...

最新文章

  1. Coursera课程Python for everyone:chapter7
  2. linuxliveu盘怎么用_U盘数据如何恢复?U盘打不开怎么办?
  3. 360——新式的流氓
  4. 平稳时间序列分析:ARMA模型
  5. 编译器之词法分析器(Lexical Analyzer)
  6. 兄弟连LAMP环境搭建
  7. 手机safari导入html书签,苹果手机safari书签及其历史记录怎么恢复
  8. c语言考研必刷题小程序,小程序推荐:大学生必备刷题小程序,内容涵盖各种证书考试题型...
  9. JavaScript - 自定义属性 -
  10. Browser 相关内容
  11. Arduino ESP32通过心知天气获取城市三天的信息
  12. AR1021x USB网卡驱动学习笔记
  13. 二字动词 复盘赋能_【格格读书成长营】用复盘来为自己赋能
  14. as 运行java_解决AndroidStudio无法运行java中的mian方法问题
  15. 邮箱格式,好用的商务邮箱推荐
  16. 绝望的主妇第一二三季/Desperate Housewives迅雷下载
  17. Windows应用程序C#创建MDI父窗体和子窗体
  18. 处理极端情况:财务扩展和流式传输
  19. 如何使用hugo搭建个人博客(五):添加站内搜索(gcse)
  20. 字节与字符串之间的转化

热门文章

  1. 山海演武传·黄道·第一卷 雏龙惊蛰 第十五 ~ 十七章 紫气凌霄再生龙
  2. Jim Williams神作:The Art and Science of Analog Circuit Design.pdf文件免费分享
  3. Alex Net 论文学习笔记(含代码)
  4. 12306查询车票输出二等车车次
  5. iic模块PCF8574驱动1602学习记载
  6. hive 批量执行sql脚本文件 跳过异常语句
  7. TPM分析笔记(十二)TPM PCR操作
  8. 【测试新人必备】测试报告如何编写?
  9. 实现USB转两个异步串口,USB总线的转接芯片
  10. pdb断点命令_关于python:使用pdb的条件断点