爬取網易雲聽歌排行榜歌單製作雲詞

最近又到了一年一度的年底總結了,網易雲音樂如此退出了年度歌單,又一次被刷朋友圈了。作爲程序員,就好奇的想驗證下結論準不準,隨便回顧下爬蟲的操作。
首先,打開網頁版網易雲音樂,登錄成功後,進入自己或好友的聽歌排行榜,如圖:
爬取網易雲聽歌排行榜歌單製作雲詞
直接使用瀏覽器的開發工具,刷新頁面查看接口及其返回結果,找到刷新該列表的接口,如圖:
爬取網易雲聽歌排行榜歌單製作雲詞
爬取網易雲聽歌排行榜歌單製作雲詞
找到url後,再找到對應的cookie等值,複製保存。如圖:
爬取網易雲聽歌排行榜歌單製作雲詞
爬取網易雲聽歌排行榜歌單製作雲詞
至此,我們已經找到網頁所有想要的信息了,下面我們就可以直接用代碼實現了。
思路:
```
a.先爬取歌曲列表,獲取對應歌曲的信息,存放到數據庫,以便後面使用
b.通過歌曲的id,獲取對應的歌詞;
c.讀取歌詞分析獲取關鍵詞
d.選擇自定義的背景圖生成自己的詞圖

1.需要用到的模塊
import requests
import re
import pymssql
import matplotlib.pyplot as plt  # 數學繪圖庫
from PIL import Image
import numpy as np  # 科學數值計算包,可用來存儲和處理大型矩陣
import jieba  # 分詞庫
from wordcloud import WordCloud, ImageColorGenerator  # 詞雲庫
from selenium import webdriver
import time

2.自定義三個函數
a)get_info():獲取歷史列表中的所有歌曲並將其寫入數據庫中,同時返回所有歌曲的id,以便後面獲取歌詞
代碼塊如下:
爬取網易雲聽歌排行榜歌單製作雲詞

b)get_lyric():獲取所有歌曲的歌詞
吐槽一句,之前直接用'http://music.163.com/api/song/media?id={id}'.format(id=id), 就可以通過這個api直接獲取對應id歌曲的歌詞,現在被封了,只能用UI來分別爬取了,效率極低(考慮用多線程處理)
c)get_wordcloud():生成對應的詞雲圖
定義好歌詞存放的位置、選擇詞圖的背景圖及最後生成詞圖的位置,依次調用上面三個函數即可。效果圖如下:
爬取網易雲聽歌排行榜歌單製作雲詞
4.關注公衆號,回覆’網易雲’三個字即可獲取完整代碼,還可獲取專屬個人最愛音樂詞圖定製全過程代碼
爬取網易雲聽歌排行榜歌單製作雲詞

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章