爬取毛不易歌詞作詞云展示
今天我們做一個(gè)數(shù)據(jù)可視化的項(xiàng)目,爬取毛不易的歌詞做詞云展示魏保。
1.爬取數(shù)據(jù)
我們主要使用?Python?爬蟲獲取?HTML,用?XPath?對(duì)歌曲的?ID、名稱進(jìn)行解析撑柔,然后通過網(wǎng)易云音樂的?API?接口獲取每首歌的歌詞,最后將所有的歌詞合并得到一個(gè)變量您访。`
需要獲取符合這個(gè)?XPath?的內(nèi)容铅忿。我們通過分析?HTML?代碼,能看到一個(gè)關(guān)鍵的部分:id=‘hotsong-list’洋只。這個(gè)代表熱門歌曲列表辆沦,也正是我們想要解析的內(nèi)容。我們想要獲取這個(gè)熱門歌曲列表下面所有的鏈接识虚,XPath?解析就可以寫成?//*[@id=‘hotsong-list’]//a肢扯。然后你能看到歌曲鏈接是?href?屬性,歌曲名稱是這個(gè)鏈接的文本担锤。
獲得歌曲?ID?之后蔚晨,我們還需要知道這個(gè)歌曲的歌詞,對(duì)應(yīng)代碼中的?get_song_lyric函數(shù),在這個(gè)函數(shù)里調(diào)用了網(wǎng)易云的歌詞?API?接口`
2.設(shè)置停用詞
有一些常用詞铭腕,比如’作詞’,?‘作曲’,?'編曲’等银择,我們可以把這些詞設(shè)置為停用詞,編寫?remove_stop_words?函數(shù)累舷,從文本中去掉:
3.最后編寫?create_word_cloud?函數(shù)浩考,通過歌詞文本生成詞云文件。
創(chuàng)建好?WordCloud?類之后被盈,就可以使用?wordcloud=generate(text)?方法生成詞云析孽,傳入的參數(shù)?text?代表你要分析的文本,最后使用?wordcloud.tofile(“a.jpg”)?函數(shù)只怎,將得到的詞云圖像直接保存為圖片格式文件袜瞬。或者使用?Python?的可視化工具?Matplotlib?進(jìn)行顯示身堡。
4.結(jié)果展示
5.總結(jié)
前期的數(shù)據(jù)準(zhǔn)備在整個(gè)過程中占了很大一部分邓尤。使用?Python?作為數(shù)據(jù)采集工具,利用Python爬蟲和?XPath?解析贴谎。詞云工具?WordCloud汞扎,它是一個(gè)很好用的?Python?工具,可以將復(fù)雜的文本通過詞云圖的方式呈現(xiàn)赴精。需要注意的是佩捞,當(dāng)我們需要使用中文字體的時(shí)候,比如黑體SimHei蕾哟,就可以將?WordCloud?中的?font_path?屬性設(shè)置為?SimHei.ttf一忱,你也可以設(shè)置其他藝術(shù)字體,在給毛不易的歌詞做詞云展示的時(shí)候谭确,我們就用到了藝術(shù)字體帘营。
完整代碼放在了GitHub上,地址為https://github.com/Kenneth-He/Python/tree/master/Maomao
歡迎關(guān)注微信公眾號(hào):蛋炒番茄
分享文章逐哈、技術(shù)芬迄、資源!0和骸禀梳!