python爬取歌词_利用Python网络爬虫抓取网易云歌词
今天小编给大家分享网易云音乐歌词爬取方法。
本文的总体思路如下:
找到正确的URL,获取源码;
利用bs4解析源码,获取歌曲名和歌曲ID;
调用网易云歌曲API,获取歌词;
将歌词写入文件,并存入本地。
本文的目的是获取网易云音乐的歌词,并将歌词存入到本地文件。整体的效果图如下所示:
赵雷的歌曲
本文以民谣歌神赵雷为数据采集对象,专门采集他的歌曲歌词,其他歌手的歌词采集方式可以类推,下图展示的是《成都》歌词。
赵雷歌曲---《成都》
一般来说,网页上显示的URL就可以写在程序中,运行程序之后就可以采集到我们想要的网页源码。But在网易云音乐网站中,这条路行不通,因为网页中的URL是个假URL,真实的URL中是没有#号的。废话不多说,直接上代码。
获取网页源码
本文利用requests、bs4、 json 和re模块来采集网易云音乐歌词,记得在程序中添加headers和反盗链referer以模拟浏览器,防止被网站拒绝访问。这里的get_html方法专门用于获取源码,通常我们也要做异常处理,未雨绸缪。
获取到网页源码之后,分析源码,发现歌曲的名字和ID藏的很深,纵里寻她千百度,发现她在源码的294行,藏在
- 标签下,如下图所示:
歌曲名和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,小编建议大家动手亲自敲一下代码,在实践中你会学的更快,学的更多的。
这篇文章教会大家如何采集网易云歌词,那网易云歌曲如何采集呢?且听小编下回分解~~~
python爬取歌词_利用Python网络爬虫抓取网易云歌词相关推荐
- python爬虫抓取动态网页数据_python网络爬虫抓取ajax动态网页数据:以抓取KFC门店地址为例...
一,尝试用BeautifulSoup抓取 先打开KFC网站门店列表页面:http://www.kfc.com.cn/kfccda/storelist/index.aspx 可以看到门店列表如下图: 打 ...
- python爬微信群_利用Python爬虫实现30秒爬取500篇微信文章
引言 由于工作需要,给公司前端做了一个小工具,使用python语言,爬取搜狗微信的微信文章,附搜狗微信官方网址 从热门到时尚圈,并且包括每个栏目下面的额加载更多内容选项 一共加起来500+篇文 ...
- python爬虫能爬取微信密码吗_如何利用Python网络爬虫抓取微信好友数量以及微信好友的男女比例...
今天我们继续focus on微信,不过这次给大家带来的是利用Python网络爬虫抓取微信好友总数量和微信好友男女性别的分布情况.代码实现蛮简单的,具体的教程如下. 相信大家都知道,直接通过网页抓取微信 ...
- python爬虫微信朋友圈怎么发文字_如何利用Python网络爬虫抓取微信朋友圈的动态(上)...
今天小编给大家分享一下如何利用Python网络爬虫抓取微信朋友圈的动态信息,实际上如果单独的去爬取朋友圈的话,难度会非常大,因为微信没有提供向网易云音乐这样的API接口,所以很容易找不到门.不过不要慌 ...
- python展示全部好友_利用Python网络爬虫抓取微信好友的签名及其可视化展示
前几天给大家分享了如何利用Python词云和wordart可视化工具对朋友圈数据进行可视化,利用Python网络爬虫抓取微信好友数量以及微信好友的男女比例,以及利用Python网络爬虫抓取微信好友的所 ...
- python爬虫好友聊天记录_利用Python网络爬虫抓取微信好友的签名及其可视化展示...
前几天给大家分享了如何利用Python词云和wordart可视化工具对朋友圈数据进行可视化,利用Python网络爬虫抓取微信好友数量以及微信好友的男女比例,以及利用Python网络爬虫抓取微信好友的所 ...
- python爬虫好友图片_利用Python网络爬虫抓取微信好友的签名及其可视化展示
前几天给大家分享了如何利用Python词云和wordart可视化工具对朋友圈数据进行可视化,利用Python网络爬虫抓取微信好友数量以及微信好友的男女比例,以及利用Python网络爬虫抓取微信好友的所 ...
- python抓取微信朋友圈动态_2018最全如何利用Python网络爬虫抓取微信朋友圈的动态...
今天小编给大家分享一下如何利用Python网络爬虫抓取微信朋友圈的动态信息,实际上如果单独的去爬取朋友圈的话,难度会非常大,因为微信没有提供向网易云音乐这样的API接口,所以很容易找不到门.不过不要慌 ...
- 2018最全如何利用Python网络爬虫抓取微信朋友圈的动态
今天小编给大家分享一下如何利用Python网络爬虫抓取微信朋友圈的动态信息,实际上如果单独的去爬取朋友圈的话,难度会非常大,因为微信没有提供向网易云音乐这样的API接口,所以很容易找不到门.不过不要慌 ...
- 如何利用Python网络爬虫抓取微信朋友圈的动态(上)
今天小编给大家分享一下如何利用Python网络爬虫抓取微信朋友圈的动态信息,实际上如果单独的去爬取朋友圈的话,难度会非常大,因为微信没有提供向网易云音乐这样的API接口,所以很容易找不到门.不过不要慌 ...
最新文章
- YbtOJ#20235-[冲刺NOIP2020模拟赛Day9]公共序列【dp】
- Python使用UDP协议打造在线时间服务器
- 解方程c语言程序,C语言程序解线性方程组
- 多路复用增益,PASTA定理
- 雅型钢五金大全(五金计算器)绿色便携版V20220512 | 实用五金计算软件下载
- 2022 年 React Native 的全新架构更新
- C语言之判断直角三角形
- 定义int数组求所有奇数的和
- linux聊天室项目课程设计,网络编程课程设计报告--基于linux网络聊天室设计.docx...
- ai电话机器人销售过程自动化功能,黑斑马电话机器人系统
- imazing显示无法连接服务器,为什么苹果手机连接不上iMazing
- ContentProvider android:exported=true
- 【Linux】set ff=unix
- 怎样招聘出色的产品经理
- 数据中心服务器机柜电气参数,数据中心服务器机柜一些安装与参数
- 利用神经网络的embedding层处理类别特征
- 深入Unreal蓝图开发:自定义蓝图节点(上)
- java超级玛丽含图片背景_java超级玛丽(带背景音乐)
- 基于Adjustable Parameters的Style Transfer系列论文
- Python 爬虫 之 爬取王者荣耀的英雄们所有大皮肤图片,并 json 形式保存英雄列表信息到本地
热门文章
- [Android实例] Android有效解决加载大图片内存溢出问题及优化虚拟机内存
- 使用Lens管理多云Kubernetes
- windows下装ipython
- 在计算机上怎么找资源管理器,资源管理器怎么打开 教你如何快速打开资源管理器...
- 微软技术探究之FASTER
- 中级程序员还应该如何提高自己
- The project seems to require yarn but it‘s not installed.
- SpringSecurity(二): @Secured、@PreAuthorize、@PostAuthorize、@PostFilter、@PreFilter注解说明
- 构建数字高程模型的算法——不规则三角网(TIN, Triangulated Irregular Network)
- 通过实例学Python爬虫(一)——认识HTML网页与爬虫基础框架