python爬取网易云音乐生成王力宏歌曲词云

news/2024/11/8 18:29:29/

python爬取网易云音乐生成王力宏歌曲词云

# -*- coding:utf-8 -*-
# 网易云音乐,通过歌手id生成词云
import requests
import sys,re,os
from wordcloud import WordCloud
import matplotlib.pyplot as plt 
import jieba
from PIL import Image 
import numpy as np
from lxml import etree headers = {'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 = ['作词','作曲', '编曲', 'Arranger', '录音', '混音', '人声', 'Vocal', '弦乐', 'Keyboard', '键盘', '编辑', '助理', 'Assistants', 'Mixing', 'Editing', 'Recording', '音乐', '制作', 'Producer', '发行', 'produced', 'and', 'distributed']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 = './wc.ttf',max_words = 100,width = 2000,height = 1200,)print(cut_text)wordcloud = wc.generate(cut_text)#写词云图片wordcloud.to_file('wanglihong_wordcloud.jpg')#显示词云文件plt.imshow(wordcloud)plt.axis('off')plt.show()#得到王力宏页面热门前50的歌曲ID,歌曲名
def get_songs(artist_id):page_url = 'https://music.163.com/artist?id=' + artist_id#获取HTMLres = requests.request('GET', page_url, headers=headers)#用xpath解析前50首热门歌曲html = etree.HTML(res.text)href_xpath = "//*[@id='hotsong-list']//a/@href"name_xpath = "//*[@id='hotsong-list']//a/text()"hrefs = html.xpath(href_xpath)names = html.xpath(name_xpath)#设置热门歌曲ID,歌名song_ids = []song_names = []for href, name in zip(hrefs, names):song_ids.append(href[9:])song_names.append(name)print(href, ' ', name)return song_ids, song_names#设置热门歌手ID
artist_id = '5346'
[song_ids, song_names] = get_songs(artist_id)#所有歌词
all_word = ''
#获取每首歌歌词
for (song_id, song_name) in zip(song_ids, song_names):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 + ' ' + lyricprint(song_name)#根据词频生成词云
create_word_cloud(all_word)

在这里插入图片描述


http://www.ppmy.cn/news/615519.html

相关文章

王力宏晒乘机帅照 脚缠毛巾造型怪异

王力宏晒乘机帅照 10月31日凌晨,王力宏从纽约乘飞机,在飞机上偶遇舞蹈家许芳宜,他兴奋合影并在微博晒出照片。王力宏还是一如既往地帅气,穿着一件我爱纽约的T恤戴着棒球帽。而再仔细看,他的脚上似乎缠着一条毛巾状的白…

31年前的Beyond演唱会,是如何超清修复的?

1991年,29岁的黄家驹率领Beyond乐队登上红馆,举办了连续5天的“生命接触”演唱会。 31年来,经典曲目《光辉岁月》《喜欢你》《不再犹豫》《灰色轨迹》《真的爱你》《再见理想》.......始终留在歌迷心里。 然而,当初留下的影像却…

王力宏近照苍老异常,原来是……是写代码导致的

昨天看节目,发现这人声音很熟悉但一时间不知道这人是谁? 读书那会天天听他的音乐,想着有一天我和他一样那该多酷呀,十几年后我在某种程度上实现了;不是我在唱歌了,而是他也在写代码了,一个音乐…

数字签名与数字信封

目录 1. 什么是数字签名? 2. 数字签名的主要功能 3. 数字签名和验签的原理

王力宏闪婚携老婆李李靓蕾现身个唱【组图】 粉丝祝福盼早造人

自从王力宏李云迪纷纷公开自己的forever love之后,在网上就引起了不小的风波。随后王力宏便通过微博告知大家自己将要结婚的消息。男神闪婚虽然让网友有些意外,但是仍纷纷送来祝福,希望二哥二嫂能够幸福到老。最后还不忘留言,希望…

OK!獨家專訪才子王力宏:為音樂用盡全力

越來越出色的王力宏為大家展示了豐富多彩的音樂世界,音樂反映的是他的內心,他的情感。用心體會,你能懂他想說的話……曾就讀威廉姆斯大學醫科的王力宏可能並沒有預料到自己後來會走上音樂之路,然而經過七年的磨練,他不…

王力宏新歌在骂谁?

王力宏新歌《我完全没有理由理你》歌词 走进了便利商店   穿睡衣穿着拖鞋   ……   他被杂志洗脑   说皮肤也没那么好   说本人没电视上高   ……   水煎包不是我的早餐   刚睡醒声音shaoxia(台语,声音沙哑)   ……  …

北京奥运圣火在希腊传递 邓亚萍王力宏传递(图)

2008-03-24 20:33:56 来源: 新华社(北京)    网友评论 324 条 进入论坛 3月24日,中国火炬手邓亚萍手持火炬进行传递。 [ 查看更多罗雪娟邓亚萍王力宏等中国火炬手传递图片] 当日,北京奥运会圣火在奥林匹亚被成功采集,并开始在希腊境内传递…