根据歌单ID爬取歌词并生成词云图片

可以根据网易云音乐任何歌单的ID,抓取歌单中所有歌曲的信息以及歌词,并根据歌词中的词频生成词云图片。项目中还将歌曲信息及歌词保存在本地数据库,详细信息见代码github地址 lyricWordCloud.

词云图

QQ20180404-182638.png
1.根据歌单ID 获取歌单中歌曲列表信息
def get163SongList(song_url,headers):
            res = requests.request('GET',song_url,headers=headers)
            song_list = res.json()['result']['tracks']
            return song_list
2.获取每首歌歌词
def getSongLyric(headers,lyric_url):
    res = requests.request('GET',lyric_url,headers=headers)
    # print(res.json())
    if 'lrc' in res.json():
        lyric = res.json()['lrc']['lyric']
        lyric_without_time = re.sub(r'[\d:.[\]]','',lyric)
        return lyric_without_time
    else:
        return ''
3.根据词频 生成词云
    print('根据词频,开始生成词云!')
    f1 = f.replace('作词','')
    f2 = f1.replace('作曲','')
    cut_text = "   ".join(jieba.cut(f2,cut_all=False, HMM=True))
    # print(cut_text)
    # color_mask = plt.imread("dy.png")
    # color_mask = np.array(Image.open(os.path.join(os.path.dirname(__file__), "aa.jpg")))
    wc = WordCloud(
        font_path="aaa.ttf",
        # mask=color_mask,
        max_words=100,
        width=2000,
        height=1200,
        margin=2,
    )

    wordcloud = wc.generate(cut_text)
    wordcloud.to_file(os.path.join(os.path.dirname(__file__), "h11.jpg"))
    print('打开词云图片')
    plt.imshow(wordcloud)
    plt.axis("off")
    plt.show()

所用到的模块

from bs4 import BeautifulSoup
import sqlite3
import sys
import re
import os
from wordcloud import WordCloud
import matplotlib.pyplot as plt
import jieba
from PIL import Image
import numpy as np

效果如下

image

github地址 lyricWordCloud.

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,612评论 25 708
  • 茅侃侃1983年出生于北京市。其从小学五年级开始玩电脑,初中肄业,14岁开始在《大众软件》等杂志发表数篇文章,并自...
    珍珠港007阅读 194评论 0 0
  • 强大的convert命令---介绍他的主要原因也是应为编程语言在linux下都可以调用使用 convent命令可以...
    jack_jt_z阅读 5,019评论 2 8
  • 亲爱的文悦同学,感恩你陪伴我的第38个春天到来,感恩你一路不离不弃、对我的包容、信任、支持、无条件的付出!❤...
    陈文悦阅读 1,260评论 7 9
  • 今天晚上据说就是一年一度的“群魔乱舞”万圣节前夜了,在整个欧洲,人们都把万圣夜看作尽情玩闹、讲鬼故事和互相吓唬的好...
    美时购阅读 470评论 0 0