前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >利用Python网络爬虫抓取网易云音乐歌词

利用Python网络爬虫抓取网易云音乐歌词

作者头像
前端皮皮
发布于 2020-11-26 02:50:02
发布于 2020-11-26 02:50:02
1.3K0
举报

今天小编给大家分享网易云音乐歌词爬取方法。

本文的总体思路如下:

  1. 找到正确的URL,获取源码;
  2. 利用bs4解析源码,获取歌曲名和歌曲ID;
  3. 调用网易云歌曲API,获取歌词;
  4. 将歌词写入文件,并存入本地。

本文的目的是获取网易云音乐的歌词,并将歌词存入到本地文件。整体的效果图如下所示:

赵雷的歌曲

本文以民谣歌神赵雷为数据采集对象,专门采集他的歌曲歌词,其他歌手的歌词采集方式可以类推,下图展示的是《成都》歌词。

赵雷歌曲---《成都》

一般来说,网页上显示的URL就可以写在程序中,运行程序之后就可以采集到我们想要的网页源码。But在网易云音乐网站中,这条路行不通,因为网页中的URL是个假URL,真实的URL中是没有#号的。废话不多说,直接上代码。

获取网页源码

本文利用requests、bs4、json和re模块来采集网易云音乐歌词,记得在程序中添加headers和反盗链referer以模拟浏览器,防止被网站拒绝访问。这里的get_html方法专门用于获取源码,通常我们也要做异常处理,未雨绸缪。

获取到网页源码之后,分析源码,发现歌曲的名字和ID藏的很深,纵里寻她千百度,发现她在源码的294行,藏在<ul class="f-hide">标签下,如下图所示:

歌曲名和ID存在的位置

接下来我们利用美丽的汤来获取目标信息,直接上代码,如下图:

获取歌曲名和ID

此处要注意获取ID的时候需要对link进行切片处理,得到的数字便是歌曲的ID;另外,歌曲名是通过get_text()方法获取到的,最后利用zip函数将歌曲名和ID一一对应并进行返回。

得到ID之后便可以进入到内页获取歌词了,但是URL还是不给力,如下图:

歌词的URL

虽然我们可以明白的看到网页上的白纸黑字呈现的歌词信息,但是我们在该URL下却无法获取到歌词信息。小编通过抓包,找到了歌词的URL,发现其是POST请求还有一大堆看不懂的data,总之这个URL是不能为我们效力。那该点解呢?

莫慌,小编找到了网易云音乐的API,只要把歌曲的ID放在API链接上便可以获取到歌词了,代码如下:

调用网易云API并解析歌词

在API中歌词信息是以json格式加载的,所以需要利用json将其进行序列化解析出来,并配合正则表达式进行清洗歌词,如果不用正则表达式进行清洗的话,得到原始的数据如下所示(此处以赵雷的歌曲《成都》为例):

原始数据

很明显歌词前面有歌词呈现的时间,对于我们来说其属于杂质信息,因此需要利用正则表达式进行匹配。诚然,正则表达式并不是唯一的方法,小伙伴们也可以采取切片的方式或者其他方法进行数据清洗,在此就不赘述了。

得到歌词之后便将其写入到文件中去,并存入到本地文件中,代码如下:

写入文件和程序主体部分

现在只要我们运行程序,输入歌手的ID之后,程序将自动把该歌手的所唱歌曲的歌词抓取下来,并存到本地中。如本例中赵雷的ID是6731,输入数字6731之后,赵雷的歌词将会被抓取到,如下图所示:

程序运行结果

之后我们就可以在脚本程序的同一目录下找到生成的歌词文本,歌词就被顺利的爬取下来了。

相信大家对网易云歌词爬取已经有了一定的认识了,不过easier said than down,小编建议大家动手亲自敲一下代码,在实践中你会学的更快,学的更多的。

这篇文章教会大家如何采集网易云歌词,那网易云歌曲如何采集呢?且听小编下回分解~~~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT共享之家 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python大佬分析了15万歌词,告诉你民谣歌手们到底在唱什么
前几天小编写了两篇利用Python采集网易云歌词和利用Python采集网易云音乐歌曲文章,相信小伙伴们经过实践之后都能够顺利的采集到自己想要听的歌曲。下面的歌词是小编采集的民谣歌词,经过统计,歌词量达到将近15万。
Python进阶者
2019/10/30
8550
Python大佬分析了15万歌词,告诉你民谣歌手们到底在唱什么
如何用Python网络爬虫爬取网易云音乐歌曲
今天小编带大家一起来利用Python爬取网易云音乐,分分钟将网站上的音乐down到本地。
Python进阶者
2018/08/03
8840
如何用Python网络爬虫爬取网易云音乐歌曲
如何用Python网络爬虫爬取网易云音乐歌曲
前几天,小编带大家利用Python网络爬虫抓取网易云音乐歌词,没来得及上车的小伙伴请戳这篇文章——利用Python网络爬虫抓取网易云音乐歌词。今天小编带大家一起来利用Python爬取网易云音乐,分分钟将网站上的音乐down到本地。
前端皮皮
2020/11/26
1.2K0
如何用Python网络爬虫爬取网易云音乐歌曲
网易云音乐热门作品名字和链接抓取(xpath篇)
前几天在Python白银交流群有个叫【O|】的粉丝问了一道关于网易云音乐热门作品名字和链接抓取的问题,获取源码之后,发现使用xpath匹配拿不到东西,从响应来看,确实是可以看得到源码的。
前端皮皮
2022/08/17
7960
网易云音乐热门作品名字和链接抓取(xpath篇)
源码 | Python爬虫之网易云音乐下载
偶然的一次机会听到了房东的猫的《云烟成雨》,瞬间迷上了这慵懒的嗓音和学生气的歌词,然后一直去循环听她们的歌。然后还特意去刷了动漫《我是江小白》,好期待第二季…
昱良
2018/10/23
2.5K0
网易云音乐热门作品名字和链接抓取(html5lib篇)
前几天在Python白银交流群有个叫【O|】的粉丝问了一道关于网易云音乐热门作品名字和链接抓取的问题,获取源码之后,发现使用xpath匹配拿不到东西,从响应来看,确实是可以看得到源码的。
前端皮皮
2022/08/17
3820
网易云音乐热门作品名字和链接抓取(html5lib篇)
python3爬取网易云音乐歌单里的歌词(含源码)
一些注意事项: 1.看了Coursera上面的python教程,里面给了一个非常简单的示例,只传一个url就获取到响应报文。然而很多网站是不能只通过一个url就响应请求的,你还需要填写报文头部也就是header部分。 2.得到的报文里面中文字符都是bytes,十六进制的格式,需要用utf-8解码 3.巧用控制台找到页面内容真实的网址 其余的注意点我都写在注释里了,完整源码如下: ---- #爬取网易云音乐我的歌单里面所有歌曲的歌词 import json import requests import re
kalifa_lau
2018/04/28
1.8K0
python爬虫抓取网易云音乐歌词
python爬虫库的选择 如果你已经了解一些python的基础,那不妨来搞点事情做,比如说做个爬虫,python的爬虫库相当的多,我建议初学者从requests库学起就好,为什么这么说,因为这个库对新手来说特别的友好,Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用。 安装requests库 要安装 Requests,只要在你的终端中运行这个简单命令即可:pip install requests,前提是你已经安装好pip了。 发送请求 一开始要导入 Requests 模块
企鹅号小编
2018/01/25
1.7K0
编写一个网易云音乐爬虫程序
本次借助wxPython编写一个网易云音乐的爬虫程序,能够根据一个歌单链接下载其下的所有音乐
冰霜
2022/03/15
1.2K0
编写一个网易云音乐爬虫程序
网易云音乐热门作品名字和链接抓取(正则表达式篇)
前几天在Python白银交流群有个叫【O|】的粉丝问了一道关于网易云音乐热门作品名字和链接抓取的问题,获取源码之后,发现使用xpath匹配拿不到东西,从响应来看,确实是可以看得到源码的。
前端皮皮
2022/08/17
3900
网易云音乐热门作品名字和链接抓取(正则表达式篇)
Python3爬虫抓取网易云音乐热评实战
前一段时间刚刚入门python爬虫,有大概半个月时间没有写python了,都快遗忘了。于是准备写个简单的爬虫练练手,我觉得网易云音乐最优特色的就是其精准的歌曲推荐和独具特色的用户评论,于是写了这个抓取
小小科
2018/05/02
1.7K0
Python3爬虫抓取网易云音乐热评实战
Python爬虫项目实战案例-批量下载网易云榜单音乐保存至本地
Win平台: “以管理员身份运行”cmd,执行pip install requests
Srlua
2024/03/01
5630
Python爬虫项目实战案例-批量下载网易云榜单音乐保存至本地
爬虫实例七:网易云音乐
网易云在线播放每首歌曲时,都有一个外链地址,这是不会变的,跟每首歌的唯一一个id绑定在一起,而每首歌audio文件的URL如下:
远方的星
2021/03/01
4.3K1
爬虫实例七:网易云音乐
iOS 开发仿网易云音乐歌词海报
从设计的角度来看,网易云音乐的界面简洁,大方,不像kugou音乐一打开就是各种广告,让人心烦。也不像QQ音乐那样动不动就各种音质,各种冲钻(不为用户需求考虑,只想赚钱,差评),最关键的是它推荐的歌真是好听,实在是太懂我了,真的是很用心的在做音乐。
HelloWorld杰少
2022/08/03
6430
iOS 开发仿网易云音乐歌词海报
网易云音乐热门作品名字和链接抓取(bs4篇)
前几天在Python白银交流群有个叫【O|】的粉丝问了一道关于网易云音乐热门作品名字和链接抓取的问题,获取源码之后,发现使用xpath匹配拿不到东西,从响应来看,确实是可以看得到源码的。
前端皮皮
2022/08/17
4450
网易云音乐热门作品名字和链接抓取(bs4篇)
收藏这些API,获取网易云音乐数据超轻松
这应该是最最最常见的了,毕竟80%的网易云音乐的爬虫/数据分析文章都是关于评论数据~
朱小五
2019/11/26
18.4K0
网易云音乐歌曲评论爬虫(附源码)
用过网易云音乐听歌的朋友都知道,网易云音乐每首歌曲后面都有很多评论,热门歌曲的评论更是接近百万或者是超过百万条.现在我就来分享一下如何爬取网易云音乐歌曲的全部评论,由于网易云音乐的评论都做了混淆加密处理,因此我们需要深入了解它的加密过程之后才能爬取到网易云音乐歌曲的全部评论.
Python中文社区
2018/10/25
1.9K0
网易云音乐歌曲评论爬虫(附源码)
44万条数据揭秘:如何成为网易云音乐评论区的网红段子手?
之前由于懒,总是评论区放个代码就草草了事,技术号们也不太好转载,以后争取《凹凸数读》的每篇文章都在这个《凹凸玩数据》里写下流程。
朱小五
2019/11/26
7480
网易云音乐热门作品名字和链接抓取(pyquery篇)
前几天在Python白银交流群有个叫【O|】的粉丝问了一道关于网易云音乐热门作品名字和链接抓取的问题,获取源码之后,发现使用xpath匹配拿不到东西,从响应来看,确实是可以看得到源码的。
前端皮皮
2022/08/17
4580
网易云音乐热门作品名字和链接抓取(pyquery篇)
Python数据可视化 | 网易云音乐年度歌曲
网易云音乐2018年度听歌报告—遇见你,真好。 相信有不少人在上周,应该已经看过自己网易云音乐的年度报告了。 小F也是去凑凑热闹,瞅了一波自己的年度听歌报告。 那么你在云村又听了多少首歌,听到最多的歌词又是什么呢? 2018年你的年度歌手又是谁,哪些又是你最爱的歌呢? 不过相比去年,我的票圈并没有很多发自己年度报告的朋友。 不得不说,版权之争开始,网易云音乐似乎就在走下坡路。 很多喜欢的歌听不了,这应该是大家共同的痛点。 最大的印象就是周董的歌,在愚人节时下架了,原以为只是个玩笑,不想却是真的。 本次通过
龙哥
2019/04/25
1.8K1
Python数据可视化 | 网易云音乐年度歌曲
推荐阅读
相关推荐
Python大佬分析了15万歌词,告诉你民谣歌手们到底在唱什么
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档