近来瞧了一篇文章,我做了六百万字得歌词剖析,通知你中国rapper都在唱甚么.立马想到也来剖析剖析我姿看看。最初的4万字歌词的词云让我看到一条规语是:
我们不要恋爱
幸运是置信本人
哈哈哈,看来独身狗是要注孤生了
言归正转,Let‘s go!

  • 1.义务目的

  • 2.爬取歌词

  • 2.2.1 爬取歌词链接

  • 2.2.2 爬取歌词

    -2.2.3 刷洗歌词

    -2.2.4 歌词文本分词

  • 2.1察看

  • 2.2 代码

  • 3.歌词词云剖析

1.义务目的

  • 爬取孙燕姿的一切中文歌词

  • 对孙燕姿的中文歌词实行剖析制作词云

2. 爬取歌词

由于没找到现成的歌词包,因而我挑选的是本人在歌词千寻网上爬,歌词千寻关于爬虫来讲仍是十分敌对复杂的,根本和soda学python---复杂爬糗百进程分歧。

2.1 察看

开始,让进入孙燕姿的主页歌词千寻-孙燕姿

接着,检查条目。我们发明页面表格中的次要内容都在tr标签的td标签下,前两个td标签中辨别包括了歌曲名专辑名

此中第一个标签中另有链接信息,经测试“http://www.lrcgc.com/” 链接局部便可跳转到歌词界面

察看歌词界面元素,发明歌词元素在p 标签下

因而我们爬取思绪以下:

1.经过歌手主页,爬取到一切歌词链接

2.经过歌词链接,爬取歌词

3.为了便于干净数据,我们将歌曲名与专辑名一同爬取

2.2 代码

2.2.1 爬取歌词链接

这局部的目的是爬取一切歌曲的链接并存储。该局部根本和soda学python---复杂爬糗百进程分歧。如有疑问看拜见糗百篇。次要代码块注释以下

  • 导入相干库

import requests

  • 主代码

def main():

由于涉及到翻页麻烦,我们需求晓得下一页的链接。察看

第一页:http://www.lrcgc.com/songlist-210-1.html

第二页:http://www.lrcgc.com/songlist-210-2.html

我们发明歌手主页各页的链接只需变动http://www.lrcgc.com/songlist-210-1.html中的黑体局部位对应页码便可。因而我们先经过一个旋转失掉url_list,共12个链接。

第二局部挪用预先写好的源代码下载函数dowload_page()及剖析函数parsel_lyrics()爬取一切歌曲的歌名,专辑名及歌词链接并存储。

  • 网页源代码下载

def download_page(url):

  • 网页源代码剖析

    找到tr,td标签找到歌名,专辑名及歌词链接

def parsel_lyrics(html,sun,num):

  • 完好代码

import requests

  • 后果

    失掉一个sunyanzi.csv的文件及DataFrame格局的变量sun

2.2.2 爬取歌词

2.2.2.1 刷洗链接

我们如今已有了一个合计包括224首歌曲相干信息的表格,在间接依据表格中的链接爬取歌词前,我们先对这个表格实行复杂的刷洗。由于条目较少,该局部我间接运用excel来处置

  • 查重:

    前后Excel中"数据选项卡"中的"删除反复项"前后依据链接 歌名查重

    采用歌名栏,查重后果以下

  • 查错

    对专辑栏实行排序,发明了一些历来没听过的专辑比方乘着风,作为铁粉万分震动,百度后得知此乃盗版专辑趁火打劫,武断删除

  • 手工

    固然这么的分明仍是远远不敷的,由于条目未几我仍是老老实实依据歌名手工来找,再老老实实取出网易云的专辑列表,挨着挨着一张一张专辑的查对。。这都是膂力活,不再赘述(这活干完,觉得能够参与姿吧的常识)最初合计失掉146条曲目,存为sun_2.xlsx

2.2.2.2 下载歌词

依据之前失掉的歌曲链接,来下载歌词,并存储到sun_2.xlsx中的歌词列。这个爬虫和后面相似。

import requestsfrom bs4 import BeautifulSoupimport numpy as npimport pandas as pdimport warnings

后果:

2.2.3 刷洗歌词

察看发明,爬取的后果中还包括了一些非中文歌词局部,采用正则表达式来实行清算,并将终极后果存储到sun_3.xlsx中

import numpy as npimport pandas as pdimport re

最初后果如图,已较好的刷洗出了歌词文本局部,但为了更精确,可手动翻开excel文件再实行检查,最初合计盈余129首歌,合计38172字。

2.2.4 歌词文本分词

运用jieba包对已处置好的文本实行剖析处置,并过滤掉了单字。

import warnings

对后果做复杂的词频剖析,能够看出我们 没有等词的频次较高

3.歌词词云剖析

这局部能够运用python自带的wordcloud包,这里我偷懒间接用了一个在线网站WordArt

  • 点击import words,载入分好词的文本

  • 在辨别挑选shape,font实行定制,留意自带字体没法辨认中文,需求本人加载字体,这里我挑选的是simsun.tff

  • 点击visualize 出图啦~

顺序仍是需求多写,多考虑多变化。今日要睡觉,早上十点起,去公司加班。各人能够加我交换群:58937142,内部老手材料,框架,爬虫。web都有,都是能够收费获取的,另有大牛解答各类困难,不失为是一个进修的好处所,小编在这里约请各人参与我的各人庭。欢送你的到来。