用Python挖掘網易雲音樂的熱門歌單

一、目標網站介紹

網易雲音樂是一款由網易開發的音樂產品,是網易杭州研究院的成果,依託專業音樂人、DJ、好友推薦及社交功能,在線音樂服務主打歌單、社交、大牌推薦和音樂指紋,以歌單、DJ節目、社交、地理位置為核心要素,主打發現和分享。

2017年11月17日,網易雲用戶突破4億。知乎上有這樣一個問題:你為什麼用網易雲其中,有一條是這樣說的:

成年人的生活裡有太多無奈。

我之前把情緒和秘密寫在QQ留言板裡,被朋友們發現。

後來寫在人人網上,被朋友們發現。

後來寫在微博裡,被朋友們發現。

後來寫在知乎裡,被朋友們發現。

後來淹沒在網易雲強大的評論區裡。

我需要一個地方,一個可以光明正大寫出來的地方。

不用擔心被任何人看到,不需要任何解釋。

網易雲可以把所有的悲傷,變成段子。

出於大眾對網易雲音樂的喜愛,這次文本挖掘我放在了這裡,希望能發現些有趣的東西。

記得關注小編後私信【學習】領取Python學習教程哦。

二、所需工具

  • Anaconda 3.5.0
  • Pycharm
  • Node.js
  • Mongodb
  • Studio 3T
  • RStudio

三、數據爬取

3.1 環境搭建

本文基於Scrapy框架爬取數據。使用pip install 來安裝scrapy需要安裝大量的依賴庫:

  • Wheel
pip install wheel 
  • lxml
pip install D:\Downloads\Scrapy\lxml-4.3.0-cp36-cp36m-win_amd64.whl 
  • PyOpenssl]
pip install D:\Downloads\Scrapy\pyOpenSSL-18.0.0-py2.py3-none-any.whl 
  • Twisted
pip install D:\Downloads\Scrapy\Twisted-18.9.0-cp36-cp36m-win_amd64.whl 
  • Pywin32
  • 可執行文件,挑選與Python對應版本安裝就好。
  • Scrapy
pip install scrapy 

這裡我使用了Anaconda來安裝scrapy,安裝時只需要一條語句:

conda install scrapy 

3.2 網站分析

網易雲音樂首頁:

用Python挖掘網易雲音樂的熱門歌單

圖3.1 網易雲官網首頁.png

爬取思路有兩種:

1.基於網頁原代碼,利用正則表達式、XPath等獲取數據;

2.基於每次請求的API,直接獲取所需數據;

本文采用第二種,針對電視劇《旋風少女》插曲的評論做簡單說明:

用Python挖掘網易雲音樂的熱門歌單

圖3.2 《旋風少女》主題曲評論.png

查看NetWork,發起請求,我們可以看到,數據保存在這裡:

用Python挖掘網易雲音樂的熱門歌單

圖3.3 網頁數據.png

請求地址為:

https://music.163.com/weapi/v1/resource/comments/R_SO_4_28936510?csrf_token=
用Python挖掘網易雲音樂的熱門歌單

image.png

但是Request HEaders裡的Cookie值、FromData裡的params、encSecKey都是加密過的。開始解密:

用Python挖掘網易雲音樂的熱門歌單

圖3.4 知乎.png

http://music.163.com/api/v1/resource/comments/R_SO_4_28936510
用Python挖掘網易雲音樂的熱門歌單

圖3.5 網頁.png

很好,但是很不巧的是網易雲設置了反爬蟲,根本不了手,爬蟲時會出現以下錯誤:

1.{"code":-460,"msg":"Cheating"} 

這是網上存在的解決辦法:

更換動態IP的:

  • 我跟網易雲音樂爬蟲不得不說的故事

複製請求頭的:

  • Python爬網易雲音樂的那些事

說明:上面兩種方法在現在是行不通的,網易雲加強了反爬蟲機制,對請求頭中的Cookie值進行了加密,所以有了下面這些對請求頭中的Cookie值進行解密的:

  • 如何爬網易雲音樂的評論數?
  • 用Python代碼來下載任意指定網易雲歌曲(超詳細版)

但是,這種解密方法繁瑣複雜,本文采用@Binaryify團隊開發的[NeteaseCloudMusicApi]獲取請求,這是一個相當便利、好用的API,感謝Binaryify。

3.3 功能特性

此次爬蟲,下面的所有功能,都可以實現:

獲取用戶信息 , 歌單,收藏,mv, dj 數量
獲取用戶歌單
獲取用戶電臺
獲取用戶關注列表
獲取用戶粉絲列表
獲取用戶動態
獲取用戶播放記錄
獲取精品歌單
獲取歌單詳情
搜索
搜索建議
獲取歌詞
歌曲評論
收藏單曲到歌單
專輯評論
歌單評論
mv 評論
電臺節目評論
banner
獲取歌曲詳情
獲取專輯內容
獲取歌手單曲
獲取歌手 mv
獲取歌手專輯
獲取歌手描述
獲取相似歌手
獲取相似歌單

相似 mv
獲取相似音樂
獲取最近 5 個聽了這首歌的用戶
獲取每日推薦歌單
獲取每日推薦歌曲
私人 FM
喜歡音樂
歌單 ( 網友精選碟 )
新碟上架
熱門歌手
最新 mv
推薦 mv
推薦歌單
推薦新音樂
推薦電臺
推薦節目
獨家放送
mv 排行
獲取 mv 數據
播放 mv/視頻
排行榜
歌手榜
雲盤
電臺 - 推薦
電臺 - 分類
電臺 - 分類推薦
電臺 - 訂閱
電臺 - 詳情
電臺 - 節目
獲取動態
獲取熱搜
發送私信
發送私信歌單
新建歌單
收藏/取消收藏歌單

歌單分類
收藏的歌手列表
訂閱的電臺列表
相關歌單推薦
付費精選接口
音樂是否可用檢查接口
獲取視頻數據
發送/刪除評論
熱門評論
視頻評論
所有榜單
所有榜單內容摘要
收藏視頻
收藏 MV
視頻詳情
相關視頻
關注用戶
新歌速遞
喜歡音樂列表(無序)
收藏的 MV 列表

本文以其中幾個為例,進行數據爬取和文本挖掘:

3.4 歌單

我們找到歌單頁面為下:

用Python挖掘網易雲音樂的熱門歌單

圖3.6 歌單.png

可以看到:

語種有:華語、歐美、日語、韓語、小語種;

風格有:流行、搖滾、民謠、電子、舞曲、說唱、輕音樂、說唱、爵士、鄉村、古典、民族、英倫、金屬、朋克、藍調、雷鬼、世界音樂、拉丁、古風等;還有對歌單的場景、情感、主題分類。

我們不對其進行帥選,爬取所有種類的歌單。當每頁為35個歌單的時候,一共有38頁;當每頁為20個歌單的時候,一共有66頁,我們把66頁一共1306個的歌單信息爬取下來:

1.class MenuSpider(scrapy.Spider): 
2. name = 'menu'
3. allowed_domains = ['localhost:3000']
4. start_urls = ['http://localhost:3000/']
5. allplaylist_url = 'http://localhost:3000/top/playlist?order=hot&cat=%E5%85%A8%E9%83%A8&limit=20&offset={offset}'
6.
7. def start_requests(self):
8. for i in range(0, 66):
9. yield Request(self.allplaylist_url.format(offset=i * 20), callback=self.parse_allplaylist)
10.
11. def parse_allplaylist(self, response):
12. result = json.loads(response.text)
13. item = MusicmenuItem()
14. for field in item.fields:
15. if field in result.keys():
16. item[field] = result.get(field)
17. yield item

3.5 歌曲

這是一個歌單下面的幾十首歌曲,每首歌都有歌曲名稱、歌手、時長、所屬專輯、發行時間、評論等。像這個歌單《一個人在外漂泊,記得按時聽歌呀》一共有40首歌。


用Python挖掘網易雲音樂的熱門歌單

圖3.7 歌單.png

我們選擇爬取歌曲評論信息的時候一併把歌曲信息爬下來。

3.6 歌曲評論

我們的目的是獲取K個歌單下面的M首歌曲的前N頁評論信息。

用Python挖掘網易雲音樂的熱門歌單

圖3.8 歌曲評論.png

接下來,連接數據庫,提取上面所爬歌單的id,根據id值獲得每個歌單下面的歌曲id,再根據歌曲id值獲得每首歌下面的評論信息。執行翻頁操作,從而最終獲取1306個歌單下面的前30首歌曲的前10頁評論:

1.# -*- coding: utf-8 -*- 
2.import time
3.import scrapy
4.from scrapy import Spider,Request
5.import io
6.import sys
7.import json
8.import pandas as pd
9.import pymongo
10.from wangyiyun.items import WangyiyunCommentItem
11.from wangyiyun.items import WangyiyunPlaylistItem
12.from wangyiyun.items import WangyiyunAllPlaylistItem
13.
14.sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8') #改變標準輸出的默認編碼
15.
16.class MusiccommentsSpider(scrapy.Spider):
17. name = 'musiccomments'
18. allowed_domains = ['localhost:3000']
19. start_urls = ['http://localhost:3000/comment/music?id=296883/']
20. allplaylist_url = 'http://localhost:3000/top/playlist?order=hot&cat=%E5%85%A8%E9%83%A8&limit=20&offset={offset}'
21. playlist_url = 'http://localhost:3000/playlist/detail?id={id}'
22. comment_url = 'http://localhost:3000/comment/music?id={id}&offset={offset}&limit=20'
23. num_comment = 0
24. num_page = 0
25. song_id = 0
26. results = ''
27.
28.
29. def start_requests(self):
30. client = pymongo.MongoClient(host='localhost', port=27017)
31. db = client['music']
32. collection = db['menu']
33. # 將數據庫數據轉為dataFrame
34. menu = pd.DataFrame(list(collection.find()))
35. num = menu['playlists']
36. result = pd.DataFrame(num.iloc[0])
37. for i in range(1, 66):
38. data2 = pd.DataFrame(num.iloc[i])
39. result = pd.concat([result, data2], ignore_index=True)
40. print(result.shape)
41. id = result['id']
42. for i in range(0, 1000):
43. yield Request(self.playlist_url.format(id=id.iloc[i]), callback=self.parse_playlist)
44.
45. def parse_playlist(self, response):
46. result = json.loads(response.text)
47. item = WangyiyunPlaylistItem()
48. for field in item.fields:

49. if field in result.keys():
50. item[field] = result.get(field)
51. yield item
52.
53. for j in range(0, 30):
54. for k in range(0,10):
55. yield Request(
56. self.comment_url.format(id=result.get('playlist').get('tracks')[j].get('id'), offset=k * 20),
57. callback=self.parse_comment, dont_filter=True)
58.
59. def parse_comment(self, response):
60. result = json.loads(response.text)
61. item = WangyiyunCommentItem()
62. #print(response.text.encode('utf-8','ignore'))
63. for field in item.fields:
64. if field in result.keys():
65. item[field] = result.get(field)
66. yield item

獲取了13943個文檔。由於爬取時歌曲信息和評論信息保存到了一張表裡,去掉其中的歌曲信息,評論信息約有12000*20=24萬條。

用Python挖掘網易雲音樂的熱門歌單

圖3.9 評論.png

說明:由於爬取的時候IP被ban,這24萬條評論並非所有,這一問題在後文中處理。

用Python挖掘網易雲音樂的熱門歌單

image.png

並且,IP被ban還導致我網易雲音樂的評論是看不了的,加載不出來的。。。

用Python挖掘網易雲音樂的熱門歌單

圖3.10 bug.png

3.7 網易雲音樂用戶

爬取思路:我們從網易雲音樂的大V雲音樂小秘書開始,爬取其關注和粉絲,再爬取其關注者的關注和粉絲,粉絲的關注和粉絲,以此類推,不斷遞歸,雪球會越滾越大,從而完成操作。

記得關注小編後私信【學習】領取Python學習教程哦。

代碼奉上:

1.# -*- coding: utf-8 -*- 
2.import time
3.import scrapy
4.import json
5.from scrapy import Spider, Request
6.from WangyiyunUser.items import WangyiyunuserItem
7.
8.class UserSpider(scrapy.Spider):
9. name = 'user'
10. allowed_domains = ['localhost:3000']
11. start_urls = ['http://localhost:3000/']
12. user_url = 'http://localhost:3000/user/detail?uid={uid}'
13. follows_url = 'http://localhost:3000/user/follows?uid={uid}&offset={offset}&limit={limit}'
14. followers_url = 'http://localhost:3000/user/followeds?uid={uid}&offset={offset}&limit={limit}'
15. start_uid = '9003'
16. follows_next_page=0
17. followers_next_page=0
18.
19. def start_requests(self):
20. yield Request(self.user_url.format(uid=self.start_uid), self.parse_user,dont_filter = True)
21.
22. yield Request(self.follows_url.format(uid=self.start_uid, limit=30, offset=0),
23. self.parse_follows,dont_filter = True)
24.
25. yield Request(self.followers_url.format(uid=self.start_uid, limit=30, offset=0),self.parse_followers,dont_filter = True)
26.

27.
28. def parse_user(self, response):
29. result = json.loads(response.text)
30. item = WangyiyunuserItem()
31.
32. for field in item.fields:
33. if field in result.keys():
34. item[field] = result.get(field)
35. yield item
36. #print(result.get('profile').get('userId'))
37.
38. yield Request(
39. self.follows_url.format(uid=result.get('profile').get('userId'), limit=30, offset=0),
40. self.parse_follows,dont_filter = True)
41.
42. yield Request(
43. self.followers_url.format(uid=result.get('profile').get('userId'), limit=30, offset=0),
44. self.parse_followers,dont_filter = True)
45.
46. def parse_follows(self, response):
47. results = json.loads(response.text)
48. print('正在判斷關注者:')
49. if 'follow' in results.keys():
50. for result in results.get('follow'):
51. yield Request(self.user_url.format(uid=result.get('userId')),
52. self.parse_user,dont_filter = True)
53.
54.
55. if results.get('more') == True:
56. self.follows_next_page = self.follows_next_page+1
57. yield Request(self.follows_url.format(uid=self.start_uid, limit=30, offset=self.follows_next_page*30),
58. self.parse_follows,dont_filter = True)
59.
60.
61. def parse_followers(self, response):
62. results = json.loads(response.text)
63.
64. if 'followeds' in results.keys():
65. for result in results.get('followeds'):
66. yield Request(self.user_url.format(uid=result.get('userId')),
67. self.parse_user,dont_filter = True)
68.
69.
70. if results.get('more') == True:
71. self.followers_next_page=self.followers_next_page+1
72. yield Request(self.followers_url.format(uid=self.start_uid, limit=30, offset=self.followers_next_page*30),
73. self.parse_followers,dont_filter = True)

最終在IP被ban之前獲得了14974條詳情。

用Python挖掘網易雲音樂的熱門歌單

圖3.10 詳情.png

四、數據分析

4.1 歌單

4.1.1 播放數量最多的TOP20歌單

導入包,設置中文字體支持

1.import pymongo  

2.import pandas as pd
3.import numpy as np
4.import matplotlib.pyplot as plt
5.from pylab import mpl
6.#設置圖片顯示字體對漢字的支持
7.mpl.rcParams['font.sans-serif'] = ['SimHei']
8.client = pymongo.MongoClient(host='localhost', port=27017)

從數據庫導入數據

1.db = client['music'] 
2.collection = db['menu']
3.# 將數據庫數據轉為dataFrame
4.data = pd.DataFrame(list(collection.find()))

查看數據維度

1.print(data.shape) 

每頁的歌單保存為一個文檔,66頁的歌單,一共有66個文檔。

取其中一頁歌單,查看內容

1.num=data['playlists'] 
2.print(num.iloc[0])

為方便觀察,對其做json解析。限於篇幅,取其中一個歌單的內容顯示如下:

1.[{ 
2. 'name': '你是個成熟的成年人了,你該戒掉情緒了。',
3. 'id': 2468145627,
4. 'trackNumberUpdateTime': 1540176152147,
5. 'status': 0,
6. 'userId': 49341371,

7. 'createTime': 1539449979814,
8. 'updateTime': 1540176152147,
9. 'subscribedCount': 58406,
10. 'trackCount': 43,
11. 'cloudTrackCount': 0,
12. 'coverImgUrl': 'http://p2.music.126.net/qXN1QIV_mGUV1BusdRX1CA==/109951163602371733.jpg',
13. 'coverImgId': 109951163602371730,
14. 'description': '-\n\n你要做一個不動聲色的大人了。不準情緒化,不準偷偷想念,不準回頭看。去過自己另外的生活。\n\n以前的你,哭著哭著就笑了。\n\n現在的你,笑著笑著就哭了。\n\n到了一定的年紀,眼淚越來越少,因為身邊再也沒有一個能幫你擦眼淚的人。\n\n在成年人的世界裡,最讓人想哭的三個字是:不要哭。\n\n-\n\n人生還有眼淚也沖刷不乾淨的巨大悲傷,還有難忘的痛苦讓你們即使想哭也不能流淚。\n\n懷揣著痛苦和悲傷,即使如此也要帶上它們笑著前行。\n\n-\n\n如果可以,往後請讓笑容比眼淚多。就算要哭,每一滴眼淚的名字也應該是——喜極而泣。\n\n-\n\n封面:站酷插畫師Y_jianjian',
15. 'tags': ['華語', '流行', '治癒'],
16. 'playCount': 4370831,
17. 'trackUpdateTime': 1546744947197,
18. 'specialType': 0,
19. 'totalDuration': 0,
20. 'creator': {
21. 'defaultAvatar': False,
22. 'province': 440000,
23. 'authStatus': 0,
24. 'followed': False,
25. 'avatarUrl': 'http://p1.music.126.net/NbMIANWbmL6PVBmduaDzqA==/109951163776645958.jpg',
26. 'accountStatus': 0,
27. 'gender': 1,
28. 'city': 441500,
29. 'birthday': 845481600000,
30. 'userId': 49341371,
31. 'userType': 200,
32. 'nickname': '一點波瀾-',

33. 'signature': '激不起一點波瀾。',
34. 'description': '',
35. 'detailDescription': '',
36. 'avatarImgId': 109951163776645950,
37. 'backgroundImgId': 109951163373553600,
38. 'backgroundUrl': 'http://p1.music.126.net/O3aDHMNl_VW7GgK2VnGz9Q==/109951163373553592.jpg',
39. 'authority': 0,
40. 'mutual': False,
41. 'expertTags': ['華語', '流行', '歐美'],
42. 'experts': None,
43. 'djStatus': 10,
44. 'vipType': 11,
45. 'remarkName': None,
46. 'avatarImgIdStr': '109951163776645958',
47. 'backgroundImgIdStr': '109951163373553592',
48. 'avatarImgId_str': '109951163776645958'
49. },
50. 'tracks': None,
51. 'subscribers': [{
52. 'defaultAvatar': False,
53. 'province': 440000,
54. 'authStatus': 0,
55. 'followed': False,
56. 'avatarUrl': 'http://p1.music.126.net/_XE9wV7-4JlWUPf51pnM_w==/109951163772509594.jpg',
57. 'accountStatus': 0,
58. 'gender': 2,
59. 'city': 440700,
60. 'birthday': -2209017600000,
61. 'userId': 515582083,
62. 'userType': 0,
63. 'nickname': '小心我錘爆你',
64. 'signature': '',
65. 'description': '',
66. 'detailDescription': '',
67. 'avatarImgId': 109951163772509600,
68. 'backgroundImgId': 109951163772503820,
69. 'backgroundUrl': 'http://p1.music.126.net/DQiWNBKXye4i_pbaSzUi9A==/109951163772503826.jpg',
70. 'authority': 0,
71. 'mutual': False,
72. 'expertTags': None,
73. 'experts': None,
74. 'djStatus': 0,
75. 'vipType': 0,
76. 'remarkName': None,
77. 'avatarImgIdStr': '109951163772509594',
78. 'backgroundImgIdStr': '109951163772503826',
79. 'avatarImgId_str': '109951163772509594'
80. }],

81. 'subscribed': None,
82. 'commentThreadId': 'A_PL_0_2468145627',
83. 'newImported': False,
84. 'adType': 0,
85. 'highQuality': False,
86. 'privacy': 0,
87. 'ordered': True,
88. 'anonimous': False,
89. 'shareCount': 520,
90. 'coverImgId_str': '109951163602371733',
91. 'commentCount': 403,
92. 'alg': 'alg_sq_topn_lr'
93.},

我們將第一個文檔,即第一頁歌單數據轉化為數據框,並查看其數據維度:

1.print(pd.DataFrame(num.iloc[0]).shape) 

結果:

1.(20, 33) 

一共有20行,33列。即第一頁的20個歌單中,每個歌單都有33個字段。將66頁的所有歌單合併到一起,查看數據維度:

1.result=pd.DataFrame(num.iloc[0]) 
2.for i in range(1,66):
3. data2=pd.DataFrame(num.iloc[i])
4. result=pd.concat([result,data2],ignore_index=True)
5.print(result.shape)

結果:

1.(1306, 33) 

所有全部歌單一共有1306個,每個歌單33個字段。查看行名:

1.print(result.columns.values.tolist()) 

33個字段為下所示:

1.['adType', 'alg', 'anonimous', 'cloudTrackCount', 'commentCount', 'commentThreadId', 'coverImgId', 'coverImgId_str', 'coverImgUrl', 'createTime', 'creator', 'description', 'highQuality', 'id', 'name', 'newImported', 'ordered', 'playCount', 'privacy', 'shareCount', 'specialType', 'status', 'subscribed', 'subscribedCount', 'subscribers', 'tags', 'totalDuration', 'trackCount', 'trackNumberUpdateTime', 'trackUpdateTime', 'tracks', 'updateTime', 'userId'] 

播放數量最多的TOP20歌單:

1.result1=result.sort_values(by=['playCount'],ascending = False) 
2.result1['playCount']
3.result2=pd.concat([result1['name'],result1['playCount']],axis=1,ignore_index=False)
4.print((pd.DataFrame(result2)).shape)
5.print((pd.DataFrame(result2)).head)
6.data=result2
7.data.index=data['name']
8.colors = '#6D6D6D' # 設置標題顏色為灰色
9.color_line = '#CC2824'
10.fontsize_title = 20
11.from IPython.core.pylabtools import figsize # import figsize
12.figsize(12.5, 4) # 設置 figsize
13.plt.rcParams['savefig.dpi'] = 200 #圖片像素
14.#plt.rcParams['figure.dpi'] = 200 #分辨率
15.# 默認的像素:[6.0,4.0],分辨率為100,圖片尺寸為 600&400
16.# 指定dpi=200,圖片尺寸為 1200*800
17.# 指定dpi=300,圖片尺寸為 1800*1200
18.# 設置figsize可以在不改變分辨率情況下改變比例
19.# 我們使用R語言中ggplot的風格
20.plt.style.use('ggplot')
21.data[1:21].plot(kind='barh',color=color_line).invert_yaxis()
22.#使用 pd.Series把dataframe轉成Series
23.#data = pd.Series(data['playCount'].values)
24.#for y,x in enumerate(list(data['playCount'].values[1:21])):
25.for y,x in enumerate(list(data.iloc[:,1][1:21].values)):
26. plt.text(x+1600000,y+0.3,'%s' %round(x,1),ha='center',color=colors)
27. #plt.text(x-20,y+0.3,'%s' %x,color=colors)
28.plt.xlabel('播放數量')
29.plt.ylabel('歌單名稱')

30.plt.title('播放數量最多的TOP20歌單', color = colors, fontsize=fontsize_title)
31.plt.tight_layout()
32.plt.savefig('播放數量最多的TOP20歌單.png',dpi=200)
33.plt.show()

結果:

用Python挖掘網易雲音樂的熱門歌單

圖4.1 播放歌單TOP20.png

顯示為文本:

1.name 
2.聽說你也在找好聽的華語歌 41094772
3.那些喜歡到循環播放的歌 37185064

4.失戀必聽歌單 | 因為你突然聽懂了很多歌 31393852
5.2018年度最熱新歌TOP100 30460302
6.別急,甜甜的戀愛馬上就輪到你了 27107300
7.溫柔暴擊 | 沉溺於男友音的甜蜜鄉 18519378
8.最是粵語最為情深 也唯獨你最難忘懷 17338788
9.提神醒腦 瘋狂抖腿魔性搖頭.GIF 15403695
10.Hip-hop | 少女心狙擊手 12368797
11.你最想對暗戀的人 說的一句話是什麼 11561604
12.風月無憾 | 你是我有關青春 最美的句讀 9827816
13.新的一年,希望你喜歡的人也喜歡你 8841251
14.【2018年度電影精選| Ready Story 】 8747021
15."若是心懷舊夢 就別再無疾而終" 8706438
16.“長大”這兩個字,孤獨得連偏旁都沒有 8587671
17.如何用手機鈴聲驚豔四座? 日語篇 8059432
18.再見大俠:武俠小說泰斗金庸逝世 7993862
19.KTV必點:有沒有一首歌,唱著唱著就淚奔 7890135
20.你放棄過一個愛了很久的人嗎? 7818393
21.歐美·耳朵懷孕 | 盤點那些流行歌手 7497257

播放量第一的為《聽說你也在找好聽的華語歌 》,播放數高達4109萬多。第二為《那些喜歡到循環播放的歌》,播放量為3718萬多。前20個歌單的播放量最少的也在749萬以上。究其原因,有以下幾點:

  • 歌單名本身很具誘惑力,很適合沒有固定聽歌意向的群體,較為大眾化,是絕大多數人的首選。像《別急,甜甜的戀愛馬上就輪到你了》《溫柔暴擊 | 沉溺於男友音的甜蜜鄉》《你最想對暗戀的人 說的一句話是什麼》《風月無憾 | 你是我有關青春 最美的句讀》等,光聽名字就很吸引人。
  • 創建人鹿白川,有網易雲達人認證,粉絲數也高達9萬多,實打實的大V。標籤:音樂(華語、流行、歐美)、資訊(生活);其創建的歌單播放量動輒上百萬,上千萬,看來屬於網易雲音樂中的主力人物。他的主頁:
用Python挖掘網易雲音樂的熱門歌單

圖4.2 個人主頁.png

  • 歌單下的歌曲本身質量就很高,這也是最重要的一點。

相反,查看播放量最少的20首:

1.中島美嘉 Special Live 2019 廣州/上海 85 
2.黴黴丨泰勒斯威·夫特的Style 82
3.C95東方專輯收錄(一專一首) 80
4.CLUB MIAMI HOHHOT 百大DJ-DENIZ KOYU 78
5.戰歌舞曲 76
6.vlog ❤ 74
7.*我們自雪鄉去往霧夏*(貳) 73
8.伴讀喵自習室 71
9.細膩莫扎特 69
10.【開業歌曲】新店開業喜慶歌曲大全100首 67
11.鄧麗君1982年香港伊麗莎白體育館演唱會 65
12.︎ 2019年精選電音 待制作 敬請期待 62
13. 一週日語新歌(12/29~01/04) 60
14.祺鑫時光軸2018年下 58
15.【純音樂】你是否聽過,那屬於夏日的美好 49
16.方燦的Spotify歌單 42
17.冷門純音| 輕叩心扉,靜享愜意好時光 31
18.【我愛學習】學習解壓輕音樂 29
19.【輕音樂】如何優雅地睡覺 24

20.思念的解藥 即是歸鄉 19

恰恰和上面三點條件都相反,也難怪不太受歡迎。

記得關注小編後私信【學習】領取Python學習教程哦。

用Python挖掘網易雲音樂的熱門歌單


分享到:


相關文章: