天天看點

網易雲音樂歌單制作詞雲圖

首先附上制作的網易雲詞雲圖

網易雲音樂歌單制作詞雲圖

有了蝦米的經驗,今天準備制作網易雲歌單,同理,我也去XHR裡面找了一下。

網易雲音樂歌單制作詞雲圖

畫對勾的,其響應為一個html,裡面包含了我想要的歌曲資訊,手動儲存該html。

我想要的資訊又在html的<body></body>裡面,通過bt4擷取該标簽的文本内容text。

而我想要的歌名 歌手名 其在text中的形式為: "name":"歌名" "name":"歌手名"

即我隻要比對 "name":"xxx" 即可

網易雲音樂歌單制作詞雲圖

=================代碼================================

# -*- coding: utf-8 -*-
"""
Created on Sun Feb 23 08:47:10 2020

@author: leslielee


import requests

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36'}
url = 'https://music.163.com/#/my/m/music/playlist?id=321080292'
response = requests.get(url,headers=headers)
print(response.status_code)
"""

from bs4 import BeautifulSoup
import re
from wordcloud import WordCloud,STOPWORDS,ImageColorGenerator
import numpy as np
from PIL import Image
import collections # 詞頻統計庫

path = 'D:/Documents/python/wordcloud/detail.html'

# 擷取html内容
html = BeautifulSoup(open(path,encoding='utf-8'),features='html.parser')

# 提取 <body></body>裡面的文本内容
body = html.body.text

pattern = re.compile(r'"name":"(.*?)"')
names =  pattern.findall(body)


#詞頻統計
word_counts = collections.Counter(names) # 對分詞做詞頻統計

# 詞頻展示
mask = np.array(Image.open('D:/Documents/python/wordcloud/madonna.jpg')) # 定義詞頻背景
wc = WordCloud(
    background_color='white', # 設定背景顔色
    mask=mask, # 設定背景圖
    max_words=250, # 最多顯示詞數
    random_state=42,
    max_font_size=150, # 字型最大值
    scale=32, #圖檔清晰度
    font_path="C:/Windows/Fonts/STXINGKA.TTF" # 解決顯示口字型亂碼問題
    )


# 生成詞雲
wc.generate_from_frequencies(word_counts) 

image_colors = ImageColorGenerator(mask, default_color=(255,23,140))
wc.recolor(color_func=image_colors)

wc.to_file('D:/Documents/python/wordcloud/songs7.jpg')
           

注:

1.系統字型檔案路徑

C:/Windows/Fonts/

2.csdn的圖檔上傳怎麼弄? 我隻會截圖複制粘貼。

3.看人家的部落格園頁面制作的很不錯。

繼續閱讀