爬取毛不易歌词作词云展示
今天我们做一个数据可视化的项目,爬取毛不易的歌词做词云展示。
1.爬取数据
我们主要使用 Python 爬虫获取 HTML,用 XPath 对歌曲的 ID、名称进行解析,然后通过网易云音乐的 API 接口获取每首歌的歌词,最后将所有的歌词合并得到一个变量。`
需要获取符合这个 XPath 的内容。我们通过分析 HTML 代码,能看到一个关键的部分:id=‘hotsong-list’。这个代表热门歌曲列表,也正是我们想要解析的内容。我们想要获取这个热门歌曲列表下面所有的链接,XPath 解析就可以写成 //*[@id=‘hotsong-list’]//a。然后你能看到歌曲链接是 href 属性,歌曲名称是这个链接的文本。
获得歌曲 ID 之后,我们还需要知道这个歌曲的歌词,对应代码中的 get_song_lyric函数,在这个函数里调用了网易云的歌词 API 接口`
2.设置停用词
有一些常用词,比如’作词’, ‘作曲’, '编曲’等,我们可以把这些词设置为停用词,编写 remove_stop_words 函数,从文本中去掉:
3.最后编写 create_word_cloud 函数,通过歌词文本生成词云文件。
创建好 WordCloud 类之后,就可以使用 wordcloud=generate(text) 方法生成词云,传入的参数 text 代表你要分析的文本,最后使用 wordcloud.tofile(“a.jpg”) 函数,将得到的词云图像直接保存为图片格式文件。或者使用 Python 的可视化工具 Matplotlib 进行显示。
4.结果展示
5.总结
前期的数据准备在整个过程中占了很大一部分。使用 Python 作为数据采集工具,利用Python爬虫和 XPath 解析。词云工具 WordCloud,它是一个很好用的 Python 工具,可以将复杂的文本通过词云图的方式呈现。需要注意的是,当我们需要使用中文字体的时候,比如黑体SimHei,就可以将 WordCloud 中的 font_path 属性设置为 SimHei.ttf,你也可以设置其他艺术字体,在给毛不易的歌词做词云展示的时候,我们就用到了艺术字体。
完整代码放在了GitHub上,地址为https://github.com/Kenneth-He/Python/tree/master/Maomao
欢迎关注微信公众号:蛋炒番茄
分享文章、技术、资源!!!
网友评论