Python 爬取 620 首蝦米歌曲,揭祕五月天為什麼狂吸粉


Python 爬取 620 首蝦米歌曲,揭秘五月天為什麼狂吸粉


作者 :Yura


Python 爬取 620 首蝦米歌曲,揭秘五月天為什麼狂吸粉


最近兩天,我被朋友圈的五月天粉絲(五迷)瘋狂刷屏,“五月天永遠陪你到20歲”“演唱會即視感”,這些字眼讓我恨不得馬上奔到電影院打卡。

Python 爬取 620 首蝦米歌曲,揭秘五月天為什麼狂吸粉


作為五迷,我是滿懷激情地在寫這篇文章呀(美容覺什麼的先不談了,五月天要緊)。

今天我就用Python爬一爬蝦米音樂,半分析半安利地給大家介紹一下這個充滿有趣靈魂的組合。

1. 數據獲取

本次爬蟲主要目的是爬取五月天所有歌曲的信息,信息維度當然是越多越好啦。

直接搜索關鍵詞“五月天”,可能會出現歌名是“五月天”的信息,或者別人翻唱“cover五月天”的內容,搜索範圍變大,多抓取了不少無用信息。

所以我以“五月天-藝人-專輯信息-歌曲id-歌曲詳情”這個路徑進行數據爬取。我發現,無論是專輯信息、歌曲list還是歌曲詳情,都存在於非常漂亮的JSON格式裡面:


Python 爬取 620 首蝦米歌曲,揭秘五月天為什麼狂吸粉


Python 爬取 620 首蝦米歌曲,揭秘五月天為什麼狂吸粉


Python 爬取 620 首蝦米歌曲,揭秘五月天為什麼狂吸粉


本來可以美滋滋“唰唰唰”地批量下載。但是!URL裡面有一個s的參數,我暫時找不到變化的規律(摔!)因為趕時間,就另闢蹊徑,用相對麻煩一點的beautiful soup庫來解析網頁源代碼的內容,過程很坎坷,這就是我為什麼五月天大電影上映凌晨還在寫這篇文章的原因……

而且,爬蟲的時候我還遇到兩個坑:

1.兩天前能運行的代碼,在今天居然解析不到所需的內容了,因為爬取的東西內容格式發生了很大變化。難道是我正巧趕上了他們內部修改源代碼的節點嘛?無從查證。

2.兩天前還在顯示的歌曲詳情(播放量和收藏量),今天一看全都變成0了,每首歌都這樣。我讓別的朋友用其他電腦查看,也是沒信息的。“檢查”了一下,Play Count這些參數直接變成Null了…?

最後得到三個文件,分別是專輯信息(50張)、歌曲列表(620首)和歌曲詳情(620首),主要是通過專輯字符和歌曲id進行相關聯,具體字段如下:

  • 專輯信息(專輯種類、ID、封面、名字、藝術家、收藏數、語言、播放數、推薦數、歌曲數量、專輯字符、評分、評分人數、發佈時間)
  • 歌曲列表(專輯名字、歌曲名字、ID、時長、播放量)
  • 歌曲詳情(歌曲名字、別名、歌曲ID、時長、播放次數、作詞、作曲、編曲、專輯名字、歌詞、熱門第一條評論、評論點贊數)

PPPs:不成熟的代碼我一定會在一週之內更新到這兒(https://github.com/PengYura)

2. 數據清洗

國際慣例:Excel畫圖表+Python畫詞雲,(自認為)簡單粗暴又高效。

3. 數據分析

Python 爬取 620 首蝦米歌曲,揭秘五月天為什麼狂吸粉


截止目前在蝦米音樂平臺關於五月天的一共有50張專輯,其中“正正經經”的專輯有9張(“錄音室專輯”),“單曲”類專輯有20張,歌曲數量在1到6首不等。

判斷作品的優劣,最明顯快速的方式就是查看大眾對其的評分,我們來瞧瞧這50張專輯的評分分佈:


Python 爬取 620 首蝦米歌曲,揭秘五月天為什麼狂吸粉



可以看到,將近一半的的專輯評分在9.8-10.0之間,只有3張專輯評分沒超過9分。說明大眾對其認可度還是相當高的。

五月天曾說過只會出10張專輯,隨著2016年《自傳》的發佈,現在已經有9張跟大家見面啦。我們先看看這9張的數據情況。

Python 爬取 620 首蝦米歌曲,揭秘五月天為什麼狂吸粉


按照發布時間順序排列:

Python 爬取 620 首蝦米歌曲,揭秘五月天為什麼狂吸粉


按照時間間隔可以看到,emmm,他們發專輯的間隔從1年慢慢變成2年、3年和5年,我很有理由懷疑下一張專輯可能在5年之後。

再看到發佈時間的月份,4張專輯都是在7月份,其餘的分佈在10月、11月和12月,這…...難道是某種症(拖延症?)的體現?

據說五月天只會出10張專輯,我非常期待第10張,我也非常害怕10張之後再無新作品(那我的人生還有什麼盼頭)。

從評論收藏數量來看,最新專輯《自傳》的播放數達7億多次,收藏數量將近30萬,推薦人數也是處於遙遙領先的地位。其次是《後青春的詩》和《第二人生》,分別佔據了播放數和推薦數的第二。

但是我覺得很多別的老歌也都是很好聽的呀,傳唱度甚至更高。我們也可以在下面的歌曲詳情分析中略窺一二。

根據專輯信息裡面的歌曲ID(字符串形式和數字形式皆可),我們可以順藤摸瓜爬取歌曲的信息(https://www.xiami.com/song/歌曲id),一共得到620首,除去沒歌詞的純音樂歌曲55首,還剩565首。



Python 爬取 620 首蝦米歌曲,揭秘五月天為什麼狂吸粉


這565首歌中,時長最短的是《輕功(京片子版)》,只有25秒。但是不管怎麼樣,也是李大哥的《貝貝》的6倍多了(逃)。

最長的是《出頭天/憨人(live)》,有12分20秒。歌曲整體時間分佈還是符合正態分佈的,75%的歌曲時長都在4到7分鐘之間。

神奇的是,平均每首歌的播放數量也是如此的趨勢:時長為5分鐘的歌曲平均每首歌播放次數有219w+。所以呀,寫歌還是寫5分鐘多的,也許這樣更容易火呢~

再看看播放數量TOP20的歌曲:

Python 爬取 620 首蝦米歌曲,揭秘五月天為什麼狂吸粉


雖然《自傳》專輯的歌曲擁有45%(9首)的佔榜率,但是耳熟能詳的《突然好想你》仍然以1.5億次的播放量穩居TOP1。

這首歌有沒有讓你想起你的某位故人?

前面提到了專輯種類有許多,什麼錄音室專輯啦,現場專輯啦,精選集啦。裡面有很多歌曲是一樣的,只是版本不一樣。

去重之後發現還剩177首歌。我們從歌曲的創作內容來看看五月天的歌到底有什麼特點。

每首歌都要經歷作詞、作曲和編曲的過程。在這177首歌裡面,主唱阿信參加了139次作詞、100次作曲,我說一句阿信是創作小王子沒人反對吧!

編曲方面,68%的歌曲都是由五月天整個團隊完成的,還有31首歌是有其他人參與合作的,合作次數最高的是周恆毅(8次)。

Python 爬取 620 首蝦米歌曲,揭秘五月天為什麼狂吸粉


為歌詞做個詞雲,我發現了五月天為什麼總是吸引大批五好青年的原因:胸懷“世界”,心中充滿”愛“,敢“想”敢“笑”,不懼“人生”和“回憶”,勇敢懷揣著“夢”想。試問誰聽了這些歌曲還能安然地繼續做“鹹魚”呢?

關於歌曲評論,我只簡單爬取了每首歌的第一條熱門評論和點贊數,你猜怎麼著?點贊數最高的3條內容,其中兩條內容迷之接近:

Python 爬取 620 首蝦米歌曲,揭秘五月天為什麼狂吸粉


Ok,我承認,我就是為了聽五月天而下載蝦米的,膚淺而熱烈。

文章開頭提到了,五月天最近的演唱會紀實大電影《五月天人生無限公司》在昨天上映啦。

這部電影記錄了五月天從2017年3月18日到2019年1月6日,415萬歌迷穿過55座城市陪伴打卡的122場演唱會。我因為種種原因還沒去打卡這部電影。但是,我還是忍不住去豆瓣看了大家的評論。

Python 爬取 620 首蝦米歌曲,揭秘五月天為什麼狂吸粉


截止目前豆瓣評分8.9分,65%的觀眾給這部電影打了滿分!作為400萬群演之一,我覺得我很驕傲!

Python 爬取 620 首蝦米歌曲,揭秘五月天為什麼狂吸粉


最後的最後,一場生活一場五月天,加入五月天永遠不會太遲讓我們一起邁向80歲

Python 爬取 620 首蝦米歌曲,揭秘五月天為什麼狂吸粉


★每日教程乾貨、行業資訊和有趣內容,歡迎VX公眾AI算力!


分享到:


相關文章: