cloudmusic:网易云爬虫

本文介绍了cloudmusic Python库,用于爬取网易云音乐的歌曲、用户信息。支持获取音乐的音频文件、封面、歌词、评论等,以及用户的等级、昵称、听歌排行等。示例展示了如何下载歌曲、获取热评、搜索音乐及获取用户信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

cloudmuscic:网易云音乐爬虫

一个功能强大的网易云音乐爬取的python库。
它支持与音乐相关的,音频文件、音乐封面、歌手信息、歌词、歌曲的相关评论的获赞数、发表时间、发表用户等等各种信息。
它还支持与用户先关的,用户等级、昵称、生日、地址、头像、账号创建时间、vip类型、粉丝数量,听歌排行等等

安装

pip install cloudmusic

使用

  • cloudmusic库设计了两个的对象,一切信息都存储在Music对象或User对象中。因此在获取信息之前,我们先要获取Music或User对象。- 通过歌曲id获取Music对象,并展示部分属性

  • 通过歌曲id获取Music对象,并展示部分属性

import cloudmusic

music = cloudmusic.getMusic(1808053189)

print("歌名:{}".format(music.name))  # 歌名:迟迟
print("歌手:{}".format(music.artist))  # 歌手:['薛之谦']
  • 通过歌单id获取Music对象列表,并下载整个歌单的无损品质音频
musiclist = cloudmusic.getPlaylist(5403228714)

# 循环对每个Music对象执行download方法
# 其中参数level有四个可选,分别是standard, higher, exhigh和lossless。分别代表标准、较高、极高和无损音质。
for music in musiclist:
    music.download(level="lossless")
  • 获取一首歌的热评并展示部分信息
music = cloudmusic.getMusic(1808053189)

coms = music.getHotComments()

print(len(coms))
for com in coms:
    print("发布者:{}".format(com['nickName']))
    print("内容:{}".format(com['content']))
    print("获赞数:{}".format(com['likeCount']))
    print("------------")

结果

发布者:殷昌祺
内容:是你让我开始听薛之谦,是你让我爱上了石家庄,你离开我走向人海,原来,你始终属于人海
获赞数:33242
------------
发布者:春浔花见
内容:岁岁年年我都会在你身边
获赞数:19863
------------
发布者:吃不胖的赵海伦m
内容:我对着日出日落许愿 希望你永远在我身边.
获赞数:18490
------------
发布者:WorldPeacessss
内容:迟迟不收场,对自己撒谎;余生已散场,哪里敢奢望。
获赞数:10866
------------
发布者:Ros_C_
内容:这首《迟迟》的解析在我下面的回复里噢
获赞数:6990
------------
发布者:NJ子逸
内容:迟迟等到你,迟迟你没有来,你知道吗,你迟到了,我也迟到了
2021 没有迟到,但我好想你
获赞数:5970
------------
发布者:困猫酱
内容:“微博很乱,超话很烦,但我不能把薛之谦一个人扔在那儿。”
获赞数:4566
------------
发布者:初鹿野城
内容:#哇哦计划# 这首歌作词子望是薛之谦暧昧mv的女主.
获赞数:4295
------------
发布者:钟亦昙
内容:关于我俩,连分开都很长
旧友到场,带遗憾的探望
迟迟不收场,对自己撒谎
余生已散场,哪里敢奢望
擅长失望独来模样,不受影响路途漫长…
或许…我还想再爱你一趟…
获赞数:4031
------------
发布者:薛吱谦
内容:#哇哦计划#薛之谦表示: 这首修修改改两年多了,来的这么晚就叫《迟迟》吧。
获赞数:3821
------------
发布者:Joker_诒
内容:是你姗姗来迟 我却心动久久
是你姗姗来迟 我却难以忘怀
获赞数:3501
------------
发布者:马也_Crabbit
内容:去年的人和事我放下了 今年遇见的人也没有什么结果 明年一定好好过日子 可我还是想让今年的人陪我到明年 ​​​
获赞数:3223
------------
发布者:执伞盼卿归
内容:我们都是曾跑错剧场的小丑,才迟迟等不来对的人。
获赞数:3133
------------
发布者:KOMOREBI-zh
内容:迟迟钟鼓初长夜,耿耿星河欲曙天
获赞数:3002
------------
发布者:明天过后_FhJo
内容:本科线465464
我很冷静,静的我一晚没睡
获赞数:2456
  • 通过关键字搜索获取前100首歌曲的Music对象,并输出每首歌的评论数量
results = cloudmusic.search("薛之谦", 100)

for music in results:
  print(music.getCommentsCount())

结果

448316
288911
291476
100564
218955
133203
168767
213398
151962
204266
133391
196162
243547
400339
78540
197183
100190
132084
91485
177046

music对象

1.music对象属性

  • url:歌曲音频文件链接
  • id:歌曲id
  • name:歌曲名称
  • artist:歌手名称
  • artistId: 歌手id
  • album:专辑名称
  • albumId: 专辑id
  • size:音频文件大小
  • type:音频文件类型(mp3或m4a)
  • level:歌曲品质。默认higher
  • picUrl: 专辑图url

2. music对象方法

  • download(dirs, level)
    dirs:可选。下载保存路径。默认为当前文件夹内创建的新的cloudmusic文件夹。 level:可选,字符型。默认higher。下载品质,有且只有四种选择:standard,higher,exhigh,lossless。下载歌曲,返回值为下载绝对路径。
  • getHotComments(number)

number:可选,整型,默认为15。希望获取的评论个数。上限为15个。

获取热评。返回值为列表,列表元素为字典,字典内容: “likeCount”:获赞数 “content”:评论内容 “time”:评论时间 “userId”:用户id “nickNamd”:用户昵称 “avatarUrl”:用户头像url “vipType”:0表示未开通vip,10表示开通音乐包,11表示开通黑胶 “userType”:0表示普通用户,非0表示特殊用户(明星,丁磊,网红,小秘书等)

  • getComments(number)

number:整型,评论个数。数量无限制。

获取最新的评论。返回值与getHotReview相同。

  • getLyrics()
    获取歌词。返回值为列表。元素1为原始歌词,元素2为翻译歌词。
  • getCommentsCount()
    返回值为整型,本首歌的评论数量。

3.music对象函数

  • getMusic(id/id_list)

id/id_list: 必须,整型、字符型或列表。歌曲id或由歌曲id组成的列表。

通过歌曲id或一个由id组成的列表生成music对象。当参数为单个id时返回值为单个music对象,当参数为id列表时返回值为music对象组成的列表。

  • getPlaylist(id)

id:必须,整型或字符型。歌单id。

通过歌单id生成music对象,参数为歌单id,返回值为歌单内所有歌曲对应music对象组成的列表。

  • search(content, number)

content:必须,字符型。搜索关键字。 number:可选,整形,搜索结果个数,默认为5。

通过关键词搜索获取music对象。返回值为music对象组成的列表。

  • getAlbum(id)

id: 必须,整型或字符型。专辑id。

和getPlaylist一样。

user对象

1. user对象属性

  • id:用户id
  • level:用户等级
  • listenSongs:累计听歌数量
  • createTime:账号创建时间
  • nickName:用户昵称
  • avatarUrl:头像url
  • city:所在城市的行政区划代码
  • province:所在省份的行政区划代码
  • vipType:vip类型。0表示未开通vip,10表示开通音乐包,11表示开通黑胶
  • birthday:生日时间戳
  • signature:个性签名
  • fans:粉丝数量
  • follows:关注的用户数量
  • eventCount:动态数量
  • playlistCount:创建的歌单数量

2.user对象方法

  • getPlaylist()
    获取用户创建和收藏的全部歌单,返回值为一个列表,每个元素是一个歌单信息组成的字典。字典内容: id:歌单id; name:歌单名称; creatorId:创建者id; createTime:创建时间; coverImgUrl:歌单封面图片url; updateTime:歌单最后一次更新时间; tags:歌单所属音乐风格,列表形式

  • getRecord(recordType)

recordType: 可选。默认为0。为0返回所有时间排行,非0返回最近一周排行。

获取用户听歌排行,返回一个列表,元素为字典。字典内容: score:分值。100表示听歌次数最多,越小越少; music:Music对象

3.获取user对象函数

  • getUser(id)

id:必须,用户id。

通过用户id获取User对象,返回值为User对象

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值