当前位置: 首页 > news >正文

数据爬取+数据可视化实战_哪里只得我共你(Dear Jane)_词云展示----网易云

一、前言

歌词上做文本分析,数据存储在网页上,需要爬取数据下来,词云展示在工作中也变得日益重要,接下来将数据爬虫与可视化结合起来,做个词云展示案例。


二、操作步骤

代码如下:


# -*- coding:utf-8 -*-
# 网易云音乐 通过获取每首歌ID,生成该歌的词云
import requests
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
from lxml import etree%matplotlib inlineheaders = {'Referer'  :'http://music.163.com','Host'     :'music.163.com','Accept'   :'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8','User-Agent':'Chrome/10'}# 得到一首歌的歌词
def get_song_lyric(headers,lyric_url):res = requests.request('GET', lyric_url, headers=headers)if 'lrc' in res.json():lyric = res.json()['lrc']['lyric']new_lyric = re.sub(r'[\d:.[\]]','',lyric)return new_lyricelse:return ''print(res.json())
# 去掉停用词
def remove_stop_words(f):stop_words = ['作词', '陈咏谦', '作曲', 'Howie', '@', 'Dear Jane', '编曲', '关礼琛', '监制', '/', 'Tim']#, '你', '说', '的', '我', '在'for stop_word in stop_words:f = f.replace(stop_word, '')return f
# 生成词云
def create_word_cloud(f):print('根据词频,开始生成词云!')f = remove_stop_words(f)cut_text = " ".join(jieba.cut(f,cut_all=False, HMM=True))wc = WordCloud(font_path="./SimHei.ttf",max_words=100,width=2000,height=1200,)print(cut_text)wordcloud = wc.generate(cut_text)# 写词云图片wordcloud.to_file("wordcloud.jpg")# 显示词云文件plt.imshow(wordcloud)plt.axis("off")plt.show()# 所有歌词
all_word = ''
# 获取每首歌歌词
song_id = '405790387'
song_name = '哪里只得我共你'# 歌词API URL
lyric_url = 'http://music.163.com/api/song/lyric?os=pc&id=' + song_id + '&lv=-1&kv=-1&tv=-1'
lyric = get_song_lyric(headers, lyric_url)
all_word = all_word + ' ' + lyric
print(song_name)
#根据词频 生成词云
create_word_cloud(all_word)

三、效果展示:

(1)歌词文本展示:
在这里插入图片描述

(2)词云图:
在这里插入图片描述

http://www.lryc.cn/news/250244.html

相关文章:

  • spring事务管理快速入门(以转账为例)
  • 如何在VS2022上的MFC项目中操作Excel(VS2010、VS2012、VS2015、VS2017、VS2019使用方法一样)
  • 【Java8系列06】Java8数据计算
  • Andrioid T 实现充电动画(2)
  • 静态方法和属性的经典使用-单例设计模式
  • TCP七层协议
  • 规则引擎Drools使用,0基础入门规则引擎Drools(五)实战+决策表
  • Java后端开发——MVC商品管理程序
  • 【隐私计算】VOLE (Vector Oblivious Linear Evaluation)学习笔记
  • 国产linux单用户模式破解无密码登陆 (麒麟系统用户登录密码遗忘解决办法)
  • GPT市场将取代插件商店 openAI已经关闭plugins申请,全部集成到GPTs(Actions)来连接现实世界,可以与物理世界互动了。
  • PHP定义的变量 常量 静态变量等储存在内存什么位置?
  • C#中GDI+绘图应用(柱形图、折线图和饼形图)
  • 连锁零售企业如何提高异地组网的稳定性?
  • 如何靠掌握自己的大数据打破信息流的壁垒?
  • LabVIEW绘制带有多个不同标尺的波形图
  • Oracle行转列,列转行使用实例
  • 056-第三代软件开发-软件打包
  • C++相关闲碎记录(2)
  • 如何快速搭建一个大模型?简单的UI实现
  • 国家开放大学 平时作业 测试题 训练
  • 后端防止重复提交相同数据处理方式(Redis)
  • 最小栈[中等]
  • Oracle(2-9) Oracle Recovery Manager Overview and Configuration
  • 滑动验证码
  • 数据爬取+可视化实战_告白气球_词云展示----酷狗音乐
  • rkmedia_vi_get_frame_test.c 代码解析
  • 探究Kafka原理-3.生产者消费者API原理解析
  • Linux系统iptables扩展
  • Openwrt 系统安装 插件名称与中文释义