<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          用Python爬取酷狗音樂熱門榜單并可視化分析后,我們終于知道華語樂壇姓什么!

          共 3895字,需瀏覽 8分鐘

           ·

          2022-01-21 02:25

          ↑?關注 + 星標?,每天學Python新技能

          后臺回復【大禮包】送你Python自學大禮包


          大家好,我是龍哥!


          本文是一位熱愛Python的小姐姐的投稿,她今年才大四,可謂是很厲害了,有想跟小姐姐一起學Python的,可以私聊志斌進學習群,跟小姐姐一起學習~


          本文僅供學習參考,不做它用。僅代表個人意見,如有不妥之處,請私聊志斌改正~
          爬取頁面展示

          • 熱門榜單——酷狗top500: https://www.kugou.com/yy/rank/home/1-8888.html?from=rank
          在這里插入圖片描述
          • 特色榜單——影視金曲榜: https://www.kugou.com/yy/rank/home/1-33163.html?from=rank
          在這里插入圖片描述

          項目分析

          對于酷狗top500:

          • 打開network發(fā)現(xiàn)酷狗并沒有將榜單封裝在json里面,所以還是使用BeautifulSoup爬取
          • 觀察頁面發(fā)現(xiàn),并沒有下一頁的選項,只有下載客戶端
          • 再觀察url發(fā)現(xiàn) :https://www.kugou.com/yy/rank/home/1-8888.html?from=rank,出現(xiàn)了1-8888,故猜測下一個頁面是2-8888嗎,推測正確,按這個規(guī)律,應該有23個頁面對于酷狗影視金曲榜(100首): 同理:綜上:對于酷狗的整個榜單模塊只需要替換頁數(shù)跟榜單id值即可隨便爬取

          項目結構

          在這里插入圖片描述

          詞云輪廓圖

          • wc.jpg
          在這里插入圖片描述
          • kugoutop500.py
          import time
          import requests
          from bs4 import BeautifulSoup
          import pandas as pd
          from matplotlib import pyplot as plt
          from wordcloud import WordCloud
          from PIL import Image
          import numpy as np
          def main():
          dic = get_data()
          items = process_data(dic)
          print(len(items), items)
          word_cloud(items)
          def cnt_songer(songer, dic):
          if songer not in dic:
          dic[songer] = 1
          else:
          dic[songer] = dic[songer] + 1
          def process_data(dic):
          items = dict(sorted(dic.items(), key=lambda x: x[1], reverse=True))
          items = {key: value for key, value in items.items() if value > 1}
          print(items)
          return items
          def word_cloud(items):
          img = Image.open(r'wc.jpg')
          imgarr = np.array(img)
          wc = WordCloud(
          background_color='black',
          mask=imgarr,
          font_path='C:/Windows/Fonts/msyh.ttc',
          scale=20,

          prefer_horizontal=0.5,
          # 表示在水平如果不合適,就旋轉為垂直方向
          random_state=55
          )
          wc.generate_from_frequencies(items)
          plt.figure(5)
          plt.imshow(wc)
          plt.axis('off')
          plt.show()
          wc.to_file("酷狗TOP500詞云1.png")
          if __name__ == '__main__':
          main()
          • 運行截圖:
          56 {' 周杰倫': 37, ' 林俊杰': 18, ' 王靖雯': 6, ' 張杰': 6, ' 陳奕迅': 4, ' 任然': 4, ' 海來阿木': 4, ' 藍心羽': 4, ' 王杰': 4, ' 莫叫姐姐': 3, ' 毛不易': 3, ' 王菲': 3, ' 海倫': 3, ' 阿YueYue': 3, ' 郁可唯': 3, ' 半噸兄弟': 3, ' 許巍': 3, ' 張信哲': 3, ' 李榮浩': 3, ' F.I.R.飛兒樂團': 3, ' 不是花火呀': 3, ' 張碧晨': 2, ' 隊長': 2, ' 程jiajia': 2, ' BEYOND': 2, ' 蔡健雅': 2, ' 洛先生': 2, ' 陳慧嫻': 2, ' 程響': 2, ' 王小帥': 2, ' 徐佳瑩': 2, ' Charlie Puth': 2, ' 小藍背心': 2, ' IN': 2, ' Taylor Swift': 2, ' 七叔(葉澤浩)': 2, ' 周深': 2, ' 大歡': 2, ' 戴羽彤': 2, ' 小阿楓': 2, ' 蘇星婕': 2, ' 劉德華': 2, ' 周傳雄': 2, ' 蘇譚譚': 2, ' 孫燕姿': 2, ' 王忻辰、蘇星婕': 2, ' 李克勤': 2, ' 林子祥': 2, ' 莊心妍': 2, ' 聞人聽書_': 2, ' 朱添澤': 2, ' 陳子晴': 2, ' 胡66': 2, ' aespa (???)': 2, ' OneRepublic': 2, ' 鳳凰傳奇': 2}

          酷狗top500詞云:(這才是真正的“華語樂壇”)

          • 酷狗影視金曲.py
          import time
          import requests
          from bs4 import BeautifulSoup
          import pandas as pd
          from matplotlib import pyplot as plt
          from wordcloud import WordCloud
          from PIL import Image
          import numpy as np
          def main():
          dic = get_data()
          items = process_data(dic)
          print(len(items), items)
          word_cloud(items)
          def cnt_songer(songer, dic):
          if songer not in dic:
          dic[songer] = 1
          else:
          dic[songer] = dic[songer] + 1
          def process_data(dic):
          items = dict(sorted(dic.items(), key=lambda x: x[1], reverse=True))
          items = {key: value for key, value in items.items() if value > 1}
          print(items)
          return items


          def word_cloud(items):
          img = Image.open(r'wc.jpg')
          imgarr = np.array(img)
          wc = WordCloud(
          background_color='black',
          mask=imgarr,
          font_path='C:/Windows/Fonts/msyh.ttc',
          scale=20,

          prefer_horizontal=0.5,
          # 表示在水平如果不合適,就旋轉為垂直方向
          random_state=55
          )
          wc.generate_from_frequencies(items)
          plt.figure(5)
          plt.imshow(wc)
          plt.axis('off')
          plt.show()
          wc.to_file("酷狗影視金曲詞云.png")
          if __name__ == '__main__':
          main()
          • 運行截圖:
          15 {' BEYOND': 5, ' 陳奕迅': 4, ' 李克勤': 3, ' 林俊杰': 3, ' 王菲': 2, ' 莫文蔚': 2, ' 周杰倫': 2, ' 郁可唯': 2, ' 劉若英': 2, ' 王杰': 2, ' 毛不易': 2, ' 樸樹': 2, ' 薛之謙': 2, ' 楊丞琳': 2, ' 劉德華': 2}
          • 影視金曲榜詞云:(梅開二度)

          推薦閱讀

          1. 強勢推薦一個自學Python的優(yōu)質平臺

          2. 最新版Pycharm 2021.3最新激活教程,有效期到2099年!

          3. 穩(wěn)了!35K!字節(jié)商業(yè)數(shù)據(jù)分析崗!


          瀏覽 205
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩美女黄网站 | 亚洲狼人综合 | 中文字幕免费在线 | 成人毛片在线乱码 | 黄色国产视频在线观看 |