酷狗音樂網(wǎng)站排行榜數(shù)據(jù)采集與分析_第1頁
酷狗音樂網(wǎng)站排行榜數(shù)據(jù)采集與分析_第2頁
酷狗音樂網(wǎng)站排行榜數(shù)據(jù)采集與分析_第3頁
酷狗音樂網(wǎng)站排行榜數(shù)據(jù)采集與分析_第4頁
酷狗音樂網(wǎng)站排行榜數(shù)據(jù)采集與分析_第5頁
已閱讀5頁,還剩24頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

目錄

1引言...............................................................................................................................1

1.1項(xiàng)目背景.............................................................................................................1

1.2開發(fā)環(huán)境與工具................................................................................................2

1.2.1Python簡介............................................................................................2

1.2.2Pycharm簡介..........................................................................................2

1.2.3MySQL簡介..............................................................................................3

2需求分析.......................................................................................................................4

2.1可行性需求分析................................................................................................4

2.2采集目標(biāo)功能分析............................................................................................4

2.3關(guān)鍵技術(shù)分析....................................................................................................5

2.3.1網(wǎng)絡(luò)爬蟲技術(shù).........................................................................................5

2.3.2文件存取技術(shù).........................................................................................6

2.3.3可視化技術(shù).............................................................................................6

3數(shù)據(jù)采集.......................................................................................................................8

3.1采集頁面分析....................................................................................................8

3.2字段分析..........................................................................................................10

3.3編程實(shí)現(xiàn)..........................................................................................................10

4數(shù)據(jù)清洗與處理.........................................................................................................12

4.1數(shù)據(jù)清洗..........................................................................................................13

4.2數(shù)據(jù)儲存..........................................................................................................14

4.3編程實(shí)現(xiàn)..........................................................................................................15

5數(shù)據(jù)統(tǒng)計(jì)與分析.........................................................................................................18

5.1數(shù)據(jù)準(zhǔn)備..........................................................................................................18

5.2數(shù)據(jù)展示..........................................................................................................19

5.2.1依據(jù)歌曲名進(jìn)行統(tǒng)計(jì)...........................................................................19

5.2.2依據(jù)歌手進(jìn)行統(tǒng)計(jì)...............................................................................21

5.2.3依據(jù)歌曲時(shí)長進(jìn)行統(tǒng)計(jì).........................................................................24

I

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

5.3綜述...................................................................................................................26

6小結(jié).............................................................................................................................26

參考資料.........................................................................................................................27

II

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

酷狗音樂網(wǎng)站排行榜數(shù)據(jù)采集與分析

1引言

音樂是一種跨越文化和地域的藝術(shù)形式,它能夠觸動(dòng)人的心靈,引發(fā)人們

的共鳴。隨著互聯(lián)網(wǎng)的普及,音樂平臺如酷狗音樂等逐漸成為人們獲取音樂的

主要途徑??峁芬魳纷鳛閲鴥?nèi)知名的音樂平臺之一,其排行榜反映了廣大用戶

的音樂喜好和趨勢。對于音樂人、音樂公司以及音樂愛好者都具有很高的參考

價(jià)值。然而,由于酷狗音樂排行榜數(shù)據(jù)龐大且更新頻繁,人工分析存在很大的

局限性。因此,如何高效、準(zhǔn)確地獲取和分析酷狗音樂排行榜數(shù)據(jù),成為了亟

待解決的問題。對這些數(shù)據(jù)的采集和分析,有助于深入理解音樂市場的動(dòng)態(tài),

預(yù)測未來的流行趨勢,以及了解用戶的行為模式和喜好。此外,這些數(shù)據(jù)也可

以為音樂產(chǎn)業(yè)的決策者提供有力的數(shù)據(jù)支持,幫助他們制定更有效的策略。

通過對酷狗音樂網(wǎng)站排行榜數(shù)據(jù)的采集和分析,可以了解當(dāng)前音樂市場的

流行趨勢、用戶喜好以及潛在的音樂消費(fèi)行為。這不僅有助于音樂平臺的運(yùn)營

管理,為音樂創(chuàng)作和推廣提供參考,同時(shí)也可以為音樂產(chǎn)業(yè)的研究提供數(shù)據(jù)支

持。因此,對酷狗音樂網(wǎng)站排行榜數(shù)據(jù)的采集和分析具有重要的意義。

1.1項(xiàng)目背景

在數(shù)字化時(shí)代,音樂產(chǎn)業(yè)經(jīng)歷了巨大的變革?;ヂ?lián)網(wǎng)和移動(dòng)設(shè)備的普及使

得音樂的傳播和消費(fèi)方式發(fā)生了根本性的變化。數(shù)字音樂平臺如酷狗音樂成為

了連接音樂創(chuàng)作者和聽眾的重要橋梁??峁芬魳纷鳛橹袊I(lǐng)先的數(shù)字音樂服務(wù)

平臺之一,擁有龐大的用戶基礎(chǔ)和豐富的音樂資源,其排行榜數(shù)據(jù)更是成為了

衡量音樂流行趨勢和聽眾偏好的重要指標(biāo)。

音樂排行榜不僅反映了當(dāng)前流行音樂的走向,還為音樂制作公司、藝人、

廣告商等提供了重要的市場情報(bào)。通過分析排行榜數(shù)據(jù),可以洞察聽眾的喜好

變化,預(yù)測音樂市場的趨勢,從而指導(dǎo)音樂制作、推廣和營銷策略。然而,酷

狗音樂排行榜的數(shù)據(jù)量龐大且實(shí)時(shí)更新,手工收集和分析數(shù)據(jù)不僅效率低下,

而且難以捕捉數(shù)據(jù)的動(dòng)態(tài)變化。

因此,利用現(xiàn)代計(jì)算機(jī)技術(shù)和數(shù)據(jù)分析方法來自動(dòng)化地采集和分析酷狗音

樂排行榜數(shù)據(jù),對于音樂產(chǎn)業(yè)的專業(yè)人士和愛好者來說具有重要的實(shí)際意義。

Python作為一種功能強(qiáng)大、易于學(xué)習(xí)的編程語言,其在數(shù)據(jù)采集、處理和分析

1

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

方面的應(yīng)用日益廣泛。Python豐富的庫和框架,如requests、BeautifulSoup、

Scrapy、Pandas、NumPy、Matplotlib等,為進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)采集和分析提供了

便利。

本次畢業(yè)設(shè)計(jì)旨在基于Python語言,結(jié)合網(wǎng)絡(luò)爬蟲技術(shù)和數(shù)據(jù)分析方法,

實(shí)現(xiàn)對酷狗音樂排行榜數(shù)據(jù)的自動(dòng)化采集和分析,以期為音樂產(chǎn)業(yè)提供有價(jià)值

的數(shù)據(jù)支持和決策參考。通過本次畢業(yè)設(shè)計(jì)的實(shí)施,不僅可以提升數(shù)據(jù)采集的

效率,還可以深入挖掘數(shù)據(jù)背后的信息和趨勢,為音樂市場的洞察和發(fā)展提供

科學(xué)依據(jù)。

1.2開發(fā)環(huán)境與工具

1.2.1Python簡介

Python是一種高級的、動(dòng)態(tài)類型的編程語言,它被設(shè)計(jì)為易于閱讀和編寫。

Python的語法簡潔明了,使得它易于學(xué)習(xí)并適合快速開發(fā)。Python具有廣泛的

應(yīng)用領(lǐng)域,包括Web開發(fā)、數(shù)據(jù)科學(xué)、人工智能、機(jī)器學(xué)習(xí)、網(wǎng)絡(luò)爬蟲、系統(tǒng)

自動(dòng)化、游戲開發(fā)等。

Python是一種解釋型語言,它支持多種編程范式,包括面向?qū)ο缶幊毯瓦^

程式編程。Python的動(dòng)態(tài)類型特性意味著你不需要預(yù)先聲明變量的類型。Python

具有強(qiáng)大的標(biāo)準(zhǔn)庫和豐富的第三方庫,這些庫可以幫助你輕松地完成各種任務(wù)。

Python的強(qiáng)大之處在于它的社區(qū)。Python有一個(gè)活躍的開發(fā)者社區(qū),它為

Python的使用者提供了大量的資源和支持。你可以在Python的社區(qū)中尋找?guī)?/p>

助、分享經(jīng)驗(yàn)和學(xué)習(xí)新的技術(shù)。

總的來說,Python是一種強(qiáng)大、靈活和易于使用的編程語言,它可以幫助

你實(shí)現(xiàn)各種項(xiàng)目和目標(biāo)。無論你是初學(xué)者還是經(jīng)驗(yàn)豐富的開發(fā)者,Python都值

得你學(xué)習(xí)和使用。

1.2.2Pycharm簡介

PyCharm是一種Python的集成開發(fā)環(huán)境(IDE),專門設(shè)計(jì)用于幫助開發(fā)

者在使用Python語言開發(fā)時(shí)提高效率。PyCharm帶有一整套的工具,包括調(diào)試、

語法高亮、項(xiàng)目管理、代碼跳轉(zhuǎn)、智能提示、自動(dòng)完成、單元測試和版本控制

等。

PyCharm有兩種版本:專業(yè)版和社區(qū)版。專業(yè)版適用于公司進(jìn)行專業(yè)互聯(lián)

網(wǎng)開發(fā),需要付費(fèi)購買激活碼才能使用,功能全面。社區(qū)版提供給開發(fā)者免費(fèi)

2

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

使用,功能雖然不夠全面,但能夠滿足日常開發(fā)需要。

此外,PyCharm還提供了一些高級功能,以支持Django框架下的專業(yè)Web

開發(fā)。

總的來說,PyCharm是一個(gè)強(qiáng)大的IDE,它可以幫助Python開發(fā)者更高效

地編寫代碼,簡化開發(fā)過程,并支持多種專業(yè)開發(fā)需求。

1.2.3MySQL簡介

MySQL是一個(gè)流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS),使用SQL(結(jié)構(gòu)化

查詢語言)作為其主要的數(shù)據(jù)庫查詢語言。它由瑞典MySQLAB公司開發(fā),目前

由甲骨文公司(OracleCorporation)負(fù)責(zé)開發(fā)和維護(hù)。

MySQL是一個(gè)多用戶數(shù)據(jù)庫,允許并發(fā)地處理多個(gè)用戶和事務(wù)。它提供了

一種安全且可靠的方式來存儲、檢索、更新和刪除數(shù)據(jù),使得應(yīng)用程序可以輕

松地與數(shù)據(jù)庫進(jìn)行交互。

下面是使用MySQL對爬取到的酷狗音樂網(wǎng)站數(shù)據(jù)進(jìn)行管理的基本流程:

(1)安裝和配置MySQL數(shù)據(jù)庫:首先,需要在你的計(jì)算機(jī)上安裝MySQL數(shù)

據(jù)庫,并配置好數(shù)據(jù)庫服務(wù)器??梢詮腗ySQL官方網(wǎng)站上下載安裝包,并按照

安裝向?qū)нM(jìn)行安裝。

(2)創(chuàng)建數(shù)據(jù)庫和表:在MySQL中,需要?jiǎng)?chuàng)建一個(gè)數(shù)據(jù)庫來存儲酷狗音樂

網(wǎng)的數(shù)據(jù)。然后,在該數(shù)據(jù)庫中創(chuàng)建表來定義數(shù)據(jù)的結(jié)構(gòu)和關(guān)系??梢允褂肕ySQL

提供的命令行工具或圖形化界面工具來創(chuàng)建數(shù)據(jù)庫和表。

(3)將數(shù)據(jù)導(dǎo)入MySQL數(shù)據(jù)庫:一旦創(chuàng)建了數(shù)據(jù)庫和表,需要將爬取到的

酷狗音樂網(wǎng)數(shù)據(jù)導(dǎo)入到MySQL數(shù)據(jù)庫中??梢允褂肕ySQL提供的導(dǎo)入功能或編

程語言中的數(shù)據(jù)庫連接庫來實(shí)現(xiàn)數(shù)據(jù)的導(dǎo)入。確保數(shù)據(jù)正確地插入到相應(yīng)的表

中。

(4)查詢和管理數(shù)據(jù):一旦數(shù)據(jù)被導(dǎo)入到MySQL數(shù)據(jù)庫中,可以使用SQL

查詢語言來檢索、更新和管理數(shù)據(jù)??梢跃帉慡ELECT語句來查詢數(shù)據(jù),使用

UPDATE語句來更新數(shù)據(jù),以及使用DELETE語句來刪除數(shù)據(jù)。

(5)數(shù)據(jù)備份和恢復(fù):為了確保數(shù)據(jù)的安全性,應(yīng)該定期備份MySQL數(shù)據(jù)

庫??梢允褂肕ySQL提供的備份工具或第三方備份軟件來進(jìn)行備份。在需要恢

復(fù)數(shù)據(jù)時(shí),可以使用備份文件來還原數(shù)據(jù)庫。

總的來說,MySQL是一個(gè)強(qiáng)大、可靠且靈活的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),廣

泛應(yīng)用于各種領(lǐng)域和應(yīng)用程序中。

3

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

2需求分析

2.1可行性需求分析

1、技術(shù)可行性

酷狗音樂網(wǎng)站排行榜數(shù)據(jù)是公開可訪問的,可以通過爬蟲技術(shù)來輕松獲取

數(shù)據(jù)。Python是一個(gè)強(qiáng)大的編程語言,廣泛用于網(wǎng)絡(luò)爬蟲和數(shù)據(jù)分析。利用

Python,可以使用各種庫(如requests、BeautifulSoup、Scrapy等)來爬取

網(wǎng)頁數(shù)據(jù)??峁芬魳肪W(wǎng)站的結(jié)構(gòu)、數(shù)據(jù)格式和傳輸方式會影響到數(shù)據(jù)解析的難

度。如果數(shù)據(jù)是結(jié)構(gòu)化的,可以使用BeautifulSoup或lxml等庫來解析。如果

數(shù)據(jù)是JSON格式的,可以使用Python內(nèi)置的json庫來解析。爬取到的數(shù)據(jù)需

要存儲起來以便后續(xù)分析。Python提供了多種方式來存儲數(shù)據(jù),如CSV、Excel、

數(shù)據(jù)庫等。選擇合適的存儲方式取決于具體需求和數(shù)據(jù)規(guī)模。

綜上所述,Python爬取酷狗音樂網(wǎng)站排行榜在技術(shù)上是可行的。

2、需求可行性

酷狗音樂作為中國人使用較多的音樂播放器之一,通過分析排行榜數(shù)據(jù),

可以了解當(dāng)前流行什么樣的音樂,哪些歌手或歌曲最受歡迎。這為音樂產(chǎn)業(yè)的

市場趨勢分析、音樂制作和發(fā)行提供了重要的參考信息。排行榜數(shù)據(jù)反映了用

戶的聽歌習(xí)慣和喜好。通過分析這些數(shù)據(jù),可以深入了解用戶的音樂偏好,從

而更好地滿足用戶需求,優(yōu)化推薦算法,提升用戶體驗(yàn)。

Python擁有大量的庫和工具,專門用于數(shù)據(jù)處理和分析,如Pandas、NumPy、

Matplotlib、Seaborn等,這些庫提供了高效的數(shù)據(jù)結(jié)構(gòu)、統(tǒng)計(jì)分析和可視化

功能。Python的數(shù)據(jù)可視化庫如Matplotlib和Seaborn可以創(chuàng)建高質(zhì)量的圖

表和圖形,幫助更好地理解和展示數(shù)據(jù)分析的結(jié)果。

綜上所述,Python因其強(qiáng)大的數(shù)據(jù)處理能力、易用性和成本效益而成為分

析酷狗音樂網(wǎng)站排行榜數(shù)據(jù)的首選語言。

2.2采集目標(biāo)功能分析

本次畢業(yè)設(shè)計(jì)的數(shù)據(jù)集來源于酷狗音樂網(wǎng)官網(wǎng),通過Python技術(shù)爬取酷

狗音樂網(wǎng)排行榜的歌曲信息。經(jīng)數(shù)據(jù)清洗后共留有500條記錄,爬取完成后重

復(fù)檢查數(shù)據(jù)的準(zhǔn)確性,確定爬取出來的數(shù)據(jù)無誤,并且屬于酷狗音樂網(wǎng)酷狗排

行榜歌曲信息。

4

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

分析酷狗音樂網(wǎng)站網(wǎng)頁信息,明確本次畢業(yè)設(shè)計(jì)需要爬取的參數(shù)有酷狗音

樂排行榜列表數(shù)據(jù),包括歌曲名稱、歌手等數(shù)據(jù),在對原始數(shù)據(jù)進(jìn)行預(yù)處理后,

再對其數(shù)據(jù)進(jìn)行多個(gè)維度的分析。例如,按歌曲名稱進(jìn)行統(tǒng)計(jì),繪制詞云圖再

對比哪些詞出現(xiàn)的頻率較高。通過對歌手進(jìn)行排名,統(tǒng)計(jì)各個(gè)歌手在排行榜上

的歌曲數(shù)量,再進(jìn)行排名等。并提供數(shù)據(jù)可視化功能,將各項(xiàng)統(tǒng)計(jì)數(shù)據(jù)以圖表

等形式展示,方便用戶進(jìn)行數(shù)據(jù)分析和比較。

2.3關(guān)鍵技術(shù)分析

2.3.1網(wǎng)絡(luò)爬蟲技術(shù)

網(wǎng)絡(luò)爬蟲技術(shù),又稱網(wǎng)頁爬取技術(shù),是指使用自動(dòng)化程序模擬人類瀏覽網(wǎng)

頁的行為,從互聯(lián)網(wǎng)上獲取信息并提取有價(jià)值數(shù)據(jù)的過程。網(wǎng)絡(luò)爬蟲是搜索引

擎、數(shù)據(jù)分析、網(wǎng)絡(luò)監(jiān)測等領(lǐng)域的重要組成部分。

本次畢業(yè)設(shè)計(jì)將詳細(xì)介紹網(wǎng)絡(luò)爬蟲技術(shù),包括它的基本原理、爬蟲的分類、

爬蟲的基本流程、爬蟲的應(yīng)用以及爬蟲的局限性。

(1)基本原理:

網(wǎng)絡(luò)爬蟲通過發(fā)送HTTP請求訪問網(wǎng)頁,接收服務(wù)器返回的HTML、XML或

JSON等格式的響應(yīng)數(shù)據(jù)。解析這些數(shù)據(jù),提取出有價(jià)值的信息,如文本內(nèi)容、

圖片鏈接、視頻地址等。獲取網(wǎng)頁中的鏈接,制定策略繼續(xù)訪問其他網(wǎng)頁,實(shí)

現(xiàn)數(shù)據(jù)的規(guī)?;杉?/p>

(2)爬蟲的分類:

通用爬蟲:如搜索引擎爬蟲,廣泛地爬取網(wǎng)頁,用于構(gòu)建搜索引擎的索引

庫。

聚焦爬蟲:針對特定主題或網(wǎng)站進(jìn)行深度爬取,獲取詳細(xì)和深入的信息。

增量式爬蟲:只爬取網(wǎng)站更新或新增的部分,提高爬取效率。

(3)爬蟲的基本流程:

選擇目標(biāo):確定要爬取的網(wǎng)站和目標(biāo)數(shù)據(jù)。

發(fā)送請求:使用HTTP客戶端向目標(biāo)網(wǎng)頁發(fā)送請求,獲取網(wǎng)頁內(nèi)容。

解析數(shù)據(jù):對獲取的網(wǎng)頁內(nèi)容進(jìn)行解析,提取有用信息。

存儲數(shù)據(jù):將提取的數(shù)據(jù)存儲到本地文件、數(shù)據(jù)庫或其他存儲系統(tǒng)。

(4)爬蟲的應(yīng)用:

爬蟲技術(shù)的應(yīng)用非常廣泛,隨著互聯(lián)網(wǎng)的不斷發(fā)展和數(shù)據(jù)量的爆炸性增長,

爬蟲技術(shù)在各個(gè)領(lǐng)域的需求也在不斷增加。如:搜索引擎:搜索引擎如百度、谷

5

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

歌、必應(yīng)等使用爬蟲技術(shù)來索引互聯(lián)網(wǎng)上的網(wǎng)頁,以便用戶能夠通過搜索查詢

到相關(guān)信息。電子商務(wù):價(jià)格比較網(wǎng)站使用爬蟲技術(shù)抓取不同電商平臺上的商

品價(jià)格和詳情,幫助用戶做出購買決策。市場研究:企業(yè)使用爬蟲技術(shù)收集競

爭對手的信息,如產(chǎn)品介紹、價(jià)格策略、用戶評價(jià)等,以優(yōu)化自身的市場定位。

(5)爬蟲的局限性:

爬蟲技術(shù)雖然強(qiáng)大,但也存在一些局限性,主要包括:

反爬蟲策略:許多網(wǎng)站為了保護(hù)自己的數(shù)據(jù)和服務(wù),會采取反爬蟲措施,

如IP封禁、動(dòng)態(tài)頁面加載、驗(yàn)證碼、限制User-Agent等,這些都可能限制爬

蟲的正常工作。

隱私和安全問題:爬蟲抓取的數(shù)據(jù)可能包含用戶的隱私信息,如果沒有采

取適當(dāng)?shù)拇胧┍Wo(hù)這些信息,可能會引發(fā)隱私和安全問題。

因此,在使用爬蟲技術(shù)時(shí),需要充分考慮這些局限性,并采取相應(yīng)的措施

來避免或解決這些問題。

2.3.2文件存取技術(shù)

Python中的文件處理技術(shù)是指利用Python語言進(jìn)行文件的讀寫、管理和

操作。它可以幫助開發(fā)者更加有效地處理文件,提高工作效率。Python中文件

存取技術(shù)主要包括文件的打開、讀取、寫入和關(guān)閉等基本操作。

2.3.3可視化技術(shù)

可視化技術(shù)是指將數(shù)據(jù)或信息轉(zhuǎn)換為圖形、圖像或其他可視化形式的技術(shù),

以便更容易理解和分析。在計(jì)算機(jī)科學(xué)和信息技術(shù)領(lǐng)域,可視化技術(shù)廣泛應(yīng)用

于數(shù)據(jù)分析、科學(xué)計(jì)算、設(shè)計(jì)、工程、教育等多個(gè)方面。

(1)可視化技術(shù)的定義

可視化技術(shù)是一種將數(shù)據(jù)、信息或知識轉(zhuǎn)化為可視化形式(如圖形、圖像、

動(dòng)畫等)的方法和工具,以便更容易被人類感知、理解和交流。這種技術(shù)的目

的是通過視覺表示來增強(qiáng)信息的傳遞效率,使得復(fù)雜或抽象的概念更直觀、更

易于分析和管理。

(2)可視化技術(shù)的作用

可視化技術(shù)可以將復(fù)雜的數(shù)據(jù)和信息轉(zhuǎn)化為圖表、圖形、地圖等形式,使

人們更容易理解和分析。可視化技術(shù)可以用圖形和圖表來表達(dá)復(fù)雜的信息和數(shù)

據(jù),使得溝通更加清晰和有效。更快地獲取和理解數(shù)據(jù),從而更快速地做出決

策。這對于商業(yè)、金融、醫(yī)療等領(lǐng)域來說非常重要,因?yàn)檫@些領(lǐng)域需要快速、

6

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

準(zhǔn)確地做出決策。

(3)可視化技術(shù)的分類

可視化技術(shù)可以按照不同的標(biāo)準(zhǔn)進(jìn)行分類。以下是一些常見的分類方式:

(1)按照呈現(xiàn)方式分類:數(shù)字圖像(照片、視頻)、信息圖表(柱狀圖、

餅圖)、空間(三維圖形、虛擬現(xiàn)實(shí)技術(shù))。

(2)按照處理對象及目的分類:科學(xué)計(jì)算可視化、數(shù)據(jù)可視化、信息可視

化、知識可視化。

可視化技術(shù)的流程可以概括為以下幾個(gè)步驟:

(1)需求分析:明確可視化的目標(biāo)、受眾、數(shù)據(jù)來源以及需要呈現(xiàn)的關(guān)鍵

信息。

(2)數(shù)據(jù)收集與預(yù)處理:從各種來源收集大數(shù)據(jù),并對數(shù)據(jù)進(jìn)行清洗、整

合和格式化,以確保數(shù)據(jù)質(zhì)量和一致性。

(3)數(shù)據(jù)探索與分析:通過統(tǒng)計(jì)分析和數(shù)據(jù)挖掘技術(shù),探索數(shù)據(jù)中的模式、

趨勢和關(guān)聯(lián),確定哪些信息對于可視化是關(guān)鍵的。

(4)選擇合適的可視化工具:根據(jù)需求和技能水平,選擇適合的可視化工

具或平臺。

(5)設(shè)計(jì)可視化方案:根據(jù)分析結(jié)果和受眾需求,設(shè)計(jì)可視化的布局、色

彩、交互方式等。

(6)實(shí)現(xiàn)可視化:使用所選工具,將數(shù)據(jù)和設(shè)計(jì)轉(zhuǎn)化為具體的可視化圖表、

圖形或動(dòng)畫。

(7)測試與優(yōu)化:對可視化結(jié)果進(jìn)行測試,確保信息呈現(xiàn)準(zhǔn)確、清晰。根

據(jù)反饋和需求進(jìn)行必要的優(yōu)化和調(diào)整。

(8)發(fā)布與分享:將可視化結(jié)果發(fā)布到適當(dāng)?shù)钠脚_或工具上,與團(tuán)隊(duì)成員、

利益相關(guān)者或公眾分享,以促進(jìn)數(shù)據(jù)驅(qū)動(dòng)的決策和溝通。

(9)持續(xù)監(jiān)控與更新:隨著數(shù)據(jù)的更新和變化,持續(xù)監(jiān)控可視化的效果,

并根據(jù)需要進(jìn)行更新和維護(hù)。

這個(gè)流程強(qiáng)調(diào)了從需求分析到數(shù)據(jù)收集、處理、分析、可視化和分享的全

過程,確保大數(shù)據(jù)能夠有效地轉(zhuǎn)化為有價(jià)值的信息,并通過可視化方式呈現(xiàn)給

用戶。在可視化中,特別需要注意數(shù)據(jù)的預(yù)處理和性能優(yōu)化步驟,因?yàn)榇髷?shù)據(jù)

的處理和可視化可能會對計(jì)算資源和性能提出更高的要求。此外,由于大數(shù)據(jù)

的動(dòng)態(tài)性和變化性,可視化解決方案需要能夠適應(yīng)數(shù)據(jù)的實(shí)時(shí)更新和變化。

7

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

3數(shù)據(jù)采集

3.1采集頁面分析

首先通過瀏覽器搜索酷狗音樂的官方網(wǎng)頁,然后找到然后在榜單中找到酷

狗TOP500榜單,如圖3-1所示,其中URL為:

/yy/rank/home/1-8888.html?from=rank。瀏覽發(fā)現(xiàn)網(wǎng)

頁并無翻頁按鈕,一個(gè)頁面只顯示22首歌,但觀察url可以嘗試把1-8888中

的1替換成2,再進(jìn)行瀏覽,恰好返回的是第二頁的信息。如圖3-2所示,經(jīng)

過多次嘗試,發(fā)現(xiàn)更換不同的數(shù)字,即跳轉(zhuǎn)不同的頁面,因此只需要更改hone/

后面的數(shù)字即可,由于每頁只顯示22條信息,所以抓取前500總共需要23個(gè)

頁面。

圖3-1數(shù)據(jù)網(wǎng)址頁面

8

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖3-2網(wǎng)址頁面第二頁

按F12調(diào)出開發(fā)者工具,刷新頁面,如圖3-3。

圖3-3開發(fā)者工具

利用全局搜索工具定位所需數(shù)據(jù)位置,點(diǎn)擊開發(fā)者工具上面的Headers字

段,發(fā)現(xiàn)這個(gè)是一個(gè)GET請求,使用request庫中的get函數(shù)即可爬取數(shù)據(jù)。

9

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

3.2字段分析

首先來到酷狗音樂網(wǎng)頁面按F12調(diào)出開發(fā)者工具,然后點(diǎn)擊元素選擇器按

鈕再點(diǎn)擊所需要的數(shù)據(jù)就會定位到所需要的數(shù)據(jù)在網(wǎng)頁中的位置,如圖3-4所

示。可以使用request方法中的get函數(shù)來獲取網(wǎng)頁中的數(shù)據(jù),最原始的數(shù)據(jù)格

式是呈現(xiàn)html網(wǎng)頁格式的,所以需要清洗數(shù)據(jù)然后依次寫入到csv格式的文件

當(dāng)中。

圖3-4分析數(shù)據(jù)類型頁面圖

3.3編程實(shí)現(xiàn)

使用import導(dǎo)入所需庫,Requests庫用于請求網(wǎng)頁獲取網(wǎng)頁數(shù)據(jù),

BeautifulSoup庫用于解析網(wǎng)頁數(shù)據(jù),time庫的sleep()方法可以讓程序暫停。

代碼實(shí)現(xiàn)如下:

importrequests

frombs4importBeautifulSoup

importtime

importcsv

如果導(dǎo)入的庫標(biāo)紅可能有幾種原因:

(1)沒有安裝或沒有正確安裝需要導(dǎo)入的庫,需使用pip工具正確的安裝

所需要導(dǎo)入的庫。

(2)庫的名字沒有拼寫正確,安裝庫時(shí)需要仔細(xì)檢查拼寫是否正確。

(3)環(huán)境配置問題。

通過瀏覽器的開發(fā)者工具,復(fù)制請求頭,用于偽裝為瀏覽器,模擬瀏覽器

10

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

發(fā)送請求,防止被網(wǎng)站封禁,便于爬蟲的穩(wěn)定性。代碼實(shí)現(xiàn)如下:

headers={

'User-Agent':'Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/537.36(KHTML,

likeGecko)Chrome/56.0.2924.87Safari/537.36'

}

以上完成后,就可以編寫代碼爬取酷狗音樂網(wǎng)站排行榜了,代碼實(shí)現(xiàn)如下:

#導(dǎo)入相應(yīng)庫

importrequests

frombs4importBeautifulSoup

importtime

importcsv

#加入請求頭

headers={

'User-Agent':'Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/537.36(KHTML,

likeGecko)Chrome/56.0.2924.87Safari/537.36'

}

csv_data=[]

#定義獲取信息函數(shù)

defget_info(url):

#通過請求頭和url鏈接,得到整體網(wǎng)頁頁面信息

wb_data=requests.get(url,headers=headers)

#對返回的結(jié)果進(jìn)行解析

soup=BeautifulSoup(wb_data.text,'lxml')

#找到具體的相同的數(shù)據(jù)的內(nèi)容位置和內(nèi)容

ranks=soup.select('span.pc_temp_num')

titles=soup.select('.pc_temp_songname')

times=soup.select('.pc_temp_time')

#獲取具體的文字內(nèi)容

forranks,titles,timesinzip(ranks,titles,times):

data={

'排名':ranks.get_text().strip(),

'歌手':titles.get_text().replace('\n','').replace('\t','').replace('\r','').split('-')[1],

'歌名':titles.get_text().replace('\n','').replace('\t','').replace('\r','').split('-')[0],

'時(shí)長':times.get_text().strip().replace('\n','').replace('\t','').replace('\r','')

}

csv_data.append(data)

print(data)

if__name__=='__main__':

11

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

urls=['/yy/rank/home/{}-8888.html'.format(str(i))foriinrange(1,

24)]

#構(gòu)造要爬取的頁面地址列表

forurlinurls:

get_info(url)

time.sleep(1)

#將鏈接保存到CSV文件

withopen('kugou_top500.csv','w',newline="",encoding='utf-8')ascsvfile:

#定義CSV文件的列名

fieldnames=["排名","歌手","歌名","時(shí)長"]

#創(chuàng)建一個(gè)CSV文件寫入器

writer=csv.DictWriter(csvfile,fieldnames=fieldnames)

#寫入CSV文件的列名

writer.writeheader()

#將鏈接數(shù)據(jù)寫入CSV文件

writer.writerows(csv_data)

上述代碼使用requests.get()函數(shù)發(fā)送GET請求獲取網(wǎng)頁HTML內(nèi)容,并

使用BeautifulSoup模塊解析HTML,通過CSS選擇定位器定位到歌曲排名、歌

手、歌名、時(shí)長等元素打包成一個(gè)迭代器,然后通過循環(huán)遍歷,將每個(gè)信息存

儲到data字典中。使用if__name==’__main__’:判斷當(dāng)前文件是否被直接執(zhí)

行。使用列表推導(dǎo)式構(gòu)造一個(gè)包含要爬取的頁面地址的列表,然后使用for循

環(huán)遍歷頁面地址列表,并調(diào)用get_info()函數(shù)獲取每個(gè)頁面的信息,最后使用

time.sleep()函數(shù)控制爬蟲的速度。通過csv模塊將列表中的數(shù)據(jù)保存到一個(gè)

csv文件中。最后使用csv模塊讀取保存的csv文件,并將數(shù)據(jù)輸出到控制

臺上。

4數(shù)據(jù)清洗與處理

獲得龐大的數(shù)據(jù)集之后需要對數(shù)據(jù)進(jìn)行預(yù)處理,也就是所謂的清洗和檢查,

確定爬取過來的數(shù)據(jù)是否存在無效值和確實(shí)值,要保證數(shù)據(jù)的一致性,這個(gè)對于

信息質(zhì)量的評估是一項(xiàng)很重要的任務(wù)。不僅如此,需要將數(shù)據(jù)進(jìn)行有理化和有序

化,這樣子能夠在數(shù)據(jù)調(diào)用共享過程中方便很多開發(fā)人員對數(shù)據(jù)信息的使用。

本次項(xiàng)目中需要將爬下來的數(shù)據(jù)和網(wǎng)頁原數(shù)據(jù)進(jìn)行比對,并且檢查是否出

現(xiàn)空值、錯(cuò)值,還有數(shù)據(jù)的位置是否正確。根據(jù)不同的需求要對數(shù)據(jù)進(jìn)行不同的

處理。

12

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

4.1數(shù)據(jù)清洗

數(shù)據(jù)清洗在數(shù)據(jù)分析過程中起著至關(guān)重要的作用。它有助于提高數(shù)據(jù)質(zhì)量、

去除噪聲和冗余信息、便于數(shù)據(jù)分析和建模。通過使用Python進(jìn)行數(shù)據(jù)清洗,

用戶可以更好地理解和使用數(shù)據(jù),從而做出更準(zhǔn)確和可靠的決策。數(shù)據(jù)清洗的

主要目的是確保數(shù)據(jù)的質(zhì)量和準(zhǔn)確性,通過預(yù)處理原始數(shù)據(jù)來識別和修正數(shù)據(jù)

集中的各種問題,如不準(zhǔn)確、不完整、重復(fù)、有誤或非法的記錄。

將CSV文件通過pandas導(dǎo)入Python中并輸出,如圖4-1所示:

圖4-1數(shù)據(jù)清洗準(zhǔn)備頁面

經(jīng)過比對和檢查,發(fā)現(xiàn)數(shù)據(jù)不存在缺失,錯(cuò)位還有空值,那么根據(jù)需求將有

效數(shù)據(jù)統(tǒng)一規(guī)劃去掉不要的行列數(shù)據(jù),防止數(shù)據(jù)冗余。因此只需保留需要的數(shù)據(jù),

然后整理為原網(wǎng)頁格式存入kugou_top.csv文件中,留存后續(xù)作為統(tǒng)計(jì)分析、可

視化使用。如圖4-2所示:

13

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖4-2數(shù)據(jù)清洗完成頁面

4.2數(shù)據(jù)儲存

數(shù)據(jù)儲存得方法有很多種,常見得可以直接用記事本格式儲存(txt),或者

直接用其他文件的形式儲存csv、excel、json等,但是以上方法保存的數(shù)據(jù)體

量普遍都比較小。如果需要儲存較大的數(shù)據(jù)信息就需要用到的數(shù)據(jù)庫,數(shù)據(jù)庫也

分為關(guān)系型和非關(guān)系型數(shù)據(jù)庫。關(guān)系型數(shù)據(jù)庫比較典型的有MySQL和Oracle等,

非關(guān)系型數(shù)據(jù)庫等以鍵值對形式儲存數(shù)據(jù)的代表有Mongodb、Redis等。本次用

到的是csv、MySQL。

CSV文件是純文本格式,易于理解和創(chuàng)建幾乎可以與所有主要的數(shù)據(jù)處理

工具和編程語言兼容。在編程中,CSV文件的讀取和寫入通常很簡單,Python

的csv模塊提供了處理CSV文件的便捷方式。但是CSV文件也有局限性,比如

不適合存儲大量數(shù)據(jù),不支持復(fù)雜的數(shù)據(jù)結(jié)構(gòu)(如嵌套數(shù)據(jù)或多個(gè)表之間的關(guān)

系)、以及缺少數(shù)據(jù)類型信息。對于小規(guī)模數(shù)據(jù),csv文件是一種不錯(cuò)的選擇,

可以利用Python將數(shù)據(jù)寫入csv中。代碼實(shí)現(xiàn)如下:

#文件存儲

withopen('kugou_top500.csv','w',newline="",encoding='utf-8')ascsvfile:

#定義CSV文件的列名

fieldnames=["排名","歌手","歌名","時(shí)長"]

#創(chuàng)建一個(gè)CSV文件寫入器

writer=csv.DictWriter(csvfile,fieldnames=fieldnames)

#寫入CSV文件的列名

14

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

writer.writeheader()

#將鏈接數(shù)據(jù)寫入CSV文件

writer.writerows(csv_data)

而對于大規(guī)模數(shù)據(jù)和需要頻繁操作的應(yīng)用,則建議使用MySQL數(shù)據(jù)庫,

MySQL是一個(gè)成熟和廣泛使用的數(shù)據(jù)庫管理系統(tǒng),擁有穩(wěn)定和可靠的性能記錄。

通過Navicat連接MySQL數(shù)據(jù)庫,再將數(shù)據(jù)導(dǎo)入到MySQL數(shù)據(jù)庫中。如圖

4-3所示:

圖4-3數(shù)據(jù)存儲MySQL頁面

4.3編程實(shí)現(xiàn)

接下來需要將csv文件保存到MySQL數(shù)據(jù)庫當(dāng)中。先創(chuàng)建一個(gè)名為

"kugou"的數(shù)據(jù)庫,然后進(jìn)入該數(shù)據(jù)庫,創(chuàng)建一個(gè)名為"test"的數(shù)據(jù)表,該數(shù)據(jù)

表包含了3個(gè)字段:歌手、歌名和時(shí)長。接著將導(dǎo)入設(shè)置local_infile開

啟,再使用loaddata命令將一個(gè)名為"kugou_top500.csv"的本地文件中的數(shù)

據(jù)導(dǎo)入到test表中,數(shù)據(jù)以逗號分隔,每行以回車換行符結(jié)束,忽略第一行。

最后,使用select命令查詢test表中的前10行數(shù)據(jù),驗(yàn)證存入數(shù)據(jù)是否

正確。具體實(shí)現(xiàn)步驟如下:

創(chuàng)建數(shù)據(jù)庫,設(shè)置字符集為“utf8”。

15

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖4-4創(chuàng)建數(shù)據(jù)庫圖

創(chuàng)建數(shù)據(jù)表,設(shè)置4個(gè)字符型變量:排名、歌手、歌名、時(shí)長。

圖4-5創(chuàng)建數(shù)據(jù)表圖

16

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

在MySQL中,如果想要導(dǎo)入一個(gè)包含大量數(shù)據(jù)的文件到數(shù)據(jù)庫中,可以使

用LOADDATAINFILE命令,以便快速地將數(shù)據(jù)導(dǎo)入到指定的數(shù)據(jù)表中。但是,

默認(rèn)情況下,MySQL禁用了LOADDATAINFILE命令。為了能夠正常使用該命

令,需要先修改MySQL配置文件,開啟local_infile選項(xiàng)。

圖4-6導(dǎo)入設(shè)置local_infile開啟圖

接下來就要用loaddata函數(shù)導(dǎo)入本地kugou_top500.csv表格數(shù)據(jù)了,

如圖4-7所示,是一種常見的在MySQL數(shù)據(jù)庫中導(dǎo)入csv文件的方法,該函

數(shù)可以將csv文件的數(shù)據(jù)加載到MySQL表中。在使用loaddata函數(shù)導(dǎo)入數(shù)

據(jù)時(shí),需要指定csv文件的路徑、MySQL表的名稱以及數(shù)據(jù)列的順序和類型。

其中,'kugou_top500.csv'為要導(dǎo)入的數(shù)據(jù)文件路徑,test為要導(dǎo)入數(shù)據(jù)的目

標(biāo)數(shù)據(jù)表名,fieldsterminatedby','表示數(shù)據(jù)文件中的字段是用逗號分隔

的,linesterminatedby'\r\n'表示數(shù)據(jù)文件中的行是用換行符分隔的。

圖4-7導(dǎo)入數(shù)據(jù)圖

最后,驗(yàn)證存入數(shù)據(jù)是否正確,如圖4-8所示:

17

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖4-8驗(yàn)證數(shù)據(jù)圖

5數(shù)據(jù)統(tǒng)計(jì)與分析

5.1數(shù)據(jù)準(zhǔn)備

首先導(dǎo)入相關(guān)庫,再使用pymysql模塊輸入主機(jī)名、用戶名、密碼和數(shù)據(jù)

庫名等參數(shù)來建立MySQL數(shù)據(jù)庫連接。接下來,需要?jiǎng)?chuàng)建一個(gè)游標(biāo)對象

cursor,用于執(zhí)行SQL語句和獲取查詢結(jié)果。然后可以定義一個(gè)查詢語句,查

詢test表中的所有數(shù)據(jù)。

查詢完成后,使用cursor.execute()函數(shù)將查詢語句傳遞給MySQL數(shù)據(jù)

庫,并執(zhí)行查詢操作。再使用cursor.fetchall()獲取查詢結(jié)果,接著創(chuàng)建一

個(gè)新的csv文件,并將數(shù)據(jù)寫入到文件中。最后關(guān)閉cursor和mydb連接,

釋放資源,如圖5-1所示。

18

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖5-1數(shù)據(jù)展示頁面圖

5.2數(shù)據(jù)展示

5.2.1依據(jù)歌曲名進(jìn)行統(tǒng)計(jì)

讀取kugou_top500.csv文件后,使用Pandas庫將其轉(zhuǎn)換為DataFrame

對象。指定中文字體,然后讀取包含文本數(shù)據(jù)的DataFrame,將所有文本數(shù)據(jù)

連接成一個(gè)字符串,將浮點(diǎn)數(shù)轉(zhuǎn)換為字符串,然后生成詞云圖。代碼實(shí)現(xiàn)如下:

importpandasaspd

fromwordcloudimportWordCloud

importmatplotlib.pyplotasplt

frommatplotlib.font_managerimportFontProperties

#指定中文字體

font=FontProperties(fname="C:/Windows/Fonts/STFANGSO.TTF")

#獲取字體文件路徑

font_path=font.get_file()

#讀取包含文本數(shù)據(jù)的DataFrame

df=pd.read_csv('kugou_top500.csv')#替換成你的數(shù)據(jù)文件

19

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

#將所有文本數(shù)據(jù)連接成一個(gè)字符串,將浮點(diǎn)數(shù)轉(zhuǎn)換為字符串

text=''.join(str(item)foritemindf['歌名']ifnotpd.isnull(item))

#生成詞云

wordcloud=WordCloud(width=800,height=400,background_color='white',

font_path=font_path).generate(text)

#繪制詞云圖

plt.figure(figsize=(30,10))

plt.imshow(wordcloud,interpolation='bilinear')

plt.axis('off')

plt.show()

然后得到一張由歌曲名進(jìn)行統(tǒng)計(jì)后可視化的詞云圖,如圖5-2所示:

圖5-2歌曲名詞云圖

在圖5-2可以看出Live出現(xiàn)頻率最高,Live音樂,即現(xiàn)場版的音樂,Live

作為歌曲后綴出現(xiàn),通常表示現(xiàn)場版,出現(xiàn)頻率最高說明相對于錄音室版大多

數(shù)酷狗音樂聽眾用戶喜歡Live音樂。之所以受大多數(shù)聽眾喜愛是因?yàn)椋篖ive

音樂是在現(xiàn)場實(shí)時(shí)演奏或演唱的,因此它能夠給聽眾帶來最真實(shí)、最生動(dòng)的音

樂體驗(yàn)。聽眾可以感受到現(xiàn)場的氛圍,聽到未經(jīng)后期制作的原始聲音,感受到

音樂的力量和情感。由于Live音樂是在現(xiàn)場錄制的,因此它可能會包含一些獨(dú)

特的音效和現(xiàn)場氛圍的元素,如觀眾的歡呼聲、現(xiàn)場的環(huán)境音等。這些元素使

得Live音樂具有獨(dú)特的聽覺體驗(yàn),讓人仿佛置身于現(xiàn)場之中。綜上所述,Live

音樂以其真實(shí)性、生動(dòng)性、即興性、情感共鳴和曲目選擇的靈活性等特點(diǎn),為

20

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

聽眾帶來了獨(dú)特的音樂體驗(yàn)。

此外,Explicit、Love和Version出現(xiàn)頻率也較高。Explict在詞典上的

含義是“直言的、清晰的、毫不避諱的”,在歌名上大多作為后綴存在。這個(gè)

單詞的出現(xiàn)意味著這首歌有些“露骨”,即歌詞中含有限制級的粗口,表示這

首歌是未刪減版本。一些聽眾可能更喜歡原始、未經(jīng)刪減的歌曲版本,認(rèn)為這

樣更能體驗(yàn)到歌曲的真實(shí)情感和原始魅力。而歌名出現(xiàn)Love表明大多數(shù)聽眾喜

愛情歌,出現(xiàn)Version則表示該歌曲是某個(gè)原始歌曲不同的版本或改編版本,

這些版本可能在風(fēng)格、演奏方式、混音,歌詞或其他方面與原始歌曲有所不同。

可以為聽眾提供不同的聽覺體驗(yàn)。

5.2.2依據(jù)歌手進(jìn)行統(tǒng)計(jì)

讀取kugou_top500.csv文件后,使用Pandas庫將其轉(zhuǎn)換為DataFrame

對象。然后從DataFrame對象中提取“歌手”列的數(shù)據(jù),并傳遞給topTenSongs

函數(shù)。數(shù)據(jù)經(jīng)過統(tǒng)計(jì)和整理后,調(diào)用matplotlib庫生成柱狀圖,并在屏幕上

顯示。代碼顯示如下:

importpandasaspd

importnumpyasnp

importmatplotlib.pyplotasplt

fromwordcloudimportWordCloud

#正常顯示中文

plt.rcParams['font.sans-serif']=['SimHei']

#正常顯示負(fù)號

plt.rcParams['axes.unicode_minus']=False

#上榜歌曲數(shù)量前十歌手

deftopTenSongs(data):

List=list(set(data))

dict={}

maxDict={}

foriindata:

if(iinList):

if(inotindict.keys()):

dict[i]=1

else:

dict[i]+=1

foriinrange(10):

max=0

value=''

foriindict.keys():

21

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

if(dict[i]>=max):

max=dict[i]

value=i

maxDict[value]=max

dict.pop(value)

print(maxDict)

x=list(maxDict.keys())

y=list(maxDict.values())

#柱子上的數(shù)字顯示

fora,binzip(x,y):

plt.text(a,b,'%d'%b,ha='center',va='bottom');

plt.bar(x,y)

plt.xticks(x,rotation=30)

plt.yticks(range(5,40,5))

plt.xlabel('歌手')

plt.ylabel('歌曲數(shù)量')

plt.title('上榜歌曲數(shù)量前十歌手')

plt.show()

if__name__=='__main__':

df=pd.read_csv("kugou_top500.csv",encoding='utf-8',names=['排名','歌手','歌名','時(shí)長

'])

data=pd.DataFrame(data=df,dtype=str)

topTenSongs(data['歌手'])

通過上述代碼,將在表格中歌手名稱的字段數(shù)據(jù)進(jìn)行匯總和處理然后統(tǒng)計(jì)

其出現(xiàn)的次數(shù),最后生成字典,再通過字典里的數(shù)據(jù)生成一張依據(jù)上榜歌曲數(shù)

量進(jìn)行統(tǒng)計(jì)后可視化的柱狀圖,如圖5-3所示。

22

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖5-3上榜歌曲數(shù)量前十歌手條形圖

從圖5-3中可以看出周杰倫以29首上榜最多,林俊杰以15首排在第

二,鄧紫棋以13首排第三。這三位歌手都是華語樂壇極具才華和創(chuàng)作實(shí)力的

音樂人。他們各自擁有獨(dú)特的音樂風(fēng)格和出色的創(chuàng)作才華,能夠創(chuàng)作出符合大

眾喜好的音樂作品。他們的音樂作品旋律動(dòng)聽、歌詞深刻,深受聽眾喜愛。周

杰倫、林俊杰、鄧紫棋的歌曲風(fēng)格各異,能夠滿足不同口味和年齡段的聽眾需

求。他們的音樂作品既有經(jīng)典老歌,也有新穎流行的歌曲,吸引了廣泛的受眾

基礎(chǔ)。這使得他們的歌曲在排行榜上持續(xù)保持高人氣和影響力。

由此可以看出,從前的樂壇老將比現(xiàn)在的年輕歌手更受聽眾喜愛。因?yàn)橐?/p>

為他們具備出色的音樂才華和創(chuàng)作實(shí)力。多年的音樂創(chuàng)作和表演經(jīng)驗(yàn)使得他們

的音樂作品更具深度和魅力,能夠滿足廣大聽眾的需求。他們作品經(jīng)過時(shí)間的

沉淀和考驗(yàn),逐漸形成了良好的口碑和影響力。他們的音樂作品不僅旋律優(yōu)美、

歌詞深刻,而且在音樂風(fēng)格、文化內(nèi)涵等方面都具有較高的品質(zhì)。在成熟的音

樂市場中,聽眾對于音樂作品的品質(zhì)要求更高,更注重音樂作品的內(nèi)涵和深度。

23

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

5.2.3依據(jù)歌曲時(shí)長進(jìn)行統(tǒng)計(jì)

讀取kugou_top500.csv文件后,使用Pandas庫將其轉(zhuǎn)換為DataFrame

對象。然后從DataFrame對象中提取“時(shí)長”列的數(shù)據(jù),并傳遞給Bar函數(shù)。

數(shù)據(jù)經(jīng)過統(tǒng)計(jì)和整理后,調(diào)用matplotlib庫生成柱狀圖,并在屏幕上顯示。

代碼顯示如下:

importpandasaspd

importnumpyasnp

importmatplotlib.pyplotasplt

fromwordcloudimportWordCloud

#正常顯示中文

plt.rcParams['font.sans-serif']=['SimHei']

#正常顯示負(fù)號

plt.rcParams['axes.unicode_minus']=False

#歌曲時(shí)長區(qū)間分布

defBar(data):

List=[]

dict={}

foriinlist(set(data)):

List.append(i[0])

foriindata:

if(i[0]inList):

if(i[0]notindict.keys()):

dict[i[0]]=1

else:

dict[i[0]]+=1

x=[]

y=list(dict.values())

foriinsorted(list(dict.keys())):

if(int(i)==len(list(dict.keys()))):

x.append(i+'+')

else:

a=str(int(i)+1)

x.append(i+'-'+a)

#柱子上的數(shù)字顯示

fora,binzip(x,y):

plt.text(a,b,'%d'%b,ha='center',va='bottom',fontsize=7);

plt.bar(x,y)

plt.yticks(range(25,250,25))

plt.xlabel('分鐘')

plt.ylabel

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論