基于Python的酷狗音樂網(wǎng)數(shù)據(jù)采集與分析_第1頁
基于Python的酷狗音樂網(wǎng)數(shù)據(jù)采集與分析_第2頁
基于Python的酷狗音樂網(wǎng)數(shù)據(jù)采集與分析_第3頁
基于Python的酷狗音樂網(wǎng)數(shù)據(jù)采集與分析_第4頁
基于Python的酷狗音樂網(wǎng)數(shù)據(jù)采集與分析_第5頁
已閱讀5頁,還剩25頁未讀 繼續(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簡介....................................................................................3

1.2.3MySQL簡介........................................................................................4

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

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

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

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

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

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

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

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

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

3.2字段分析................................................................................................12

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

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

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

4.2數(shù)據(jù)儲(chǔ)存................................................................................................16

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

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

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

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

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

5.2.2依據(jù)上榜歌曲數(shù)量進(jìn)行統(tǒng)計(jì).........................................................23

I

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

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

5.3綜述........................................................................................................27

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

參考資料.....................................................................................................................28

II

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

基于Python的酷狗音樂網(wǎng)數(shù)據(jù)采集與分析

1引言

隨著互聯(lián)網(wǎng)的飛速發(fā)展,音樂網(wǎng)站成為人們獲取音樂的主要渠道之一。作

為國內(nèi)最大的音樂網(wǎng)站之一,酷狗音樂網(wǎng)日均訪問量超過1000萬,其用戶量和

音樂數(shù)據(jù)量均十分龐大??峁芬魳肪W(wǎng)作為一個(gè)典型的大型音樂網(wǎng)站,其用戶和

音樂數(shù)據(jù)的采集和分析具有重大意義。而對(duì)數(shù)據(jù)的應(yīng)用需要在大量數(shù)據(jù)中記性

挖掘搜索,搜索引擎結(jié)合這一需求就應(yīng)運(yùn)而生,不只是搜索數(shù)據(jù)信息,還要幫

助人們找到需要的結(jié)果被人們所應(yīng)用。

酷狗音樂網(wǎng)數(shù)據(jù)采集和分析可以幫助音樂產(chǎn)業(yè)分析市場趨勢和消費(fèi)者需求,

從而更好地制定產(chǎn)品策略和推廣計(jì)劃。此外,通過對(duì)大量的數(shù)據(jù)進(jìn)行深入分析,

可以更好地了解用戶的習(xí)慣和偏好,從而為音樂網(wǎng)站提供更好的用戶體驗(yàn)和個(gè)

性化推薦服務(wù)。

透過數(shù)據(jù)分析,可以深入了解音樂市場的發(fā)展變化,從而更好地把握市場

的趨勢和變化。同時(shí),數(shù)據(jù)分析可以幫助人們更好地了解用戶的需求和偏好,

從而為人們在音樂產(chǎn)業(yè)中制定更加合理和有效的商業(yè)策略提供有力的支持。

1.1項(xiàng)目背景

隨著互聯(lián)網(wǎng)科技的快速發(fā)展,音樂產(chǎn)業(yè)不再只是傳統(tǒng)的唱片銷售和演唱會(huì)。

如今,音樂網(wǎng)站已經(jīng)成為音樂產(chǎn)業(yè)的重要組成部分??峁芬魳肪W(wǎng)站是國內(nèi)領(lǐng)先

的音樂流媒體平臺(tái)之一,它提供了海量的音樂資源以及多樣化的音樂服務(wù)。這

為音樂產(chǎn)業(yè)的發(fā)展提供了巨大的機(jī)遇,同時(shí)也使得音樂網(wǎng)站的數(shù)據(jù)采集和分析

變得更加重要。

數(shù)據(jù)采集和分析是提高音樂平臺(tái)競爭力的重要手段。通過對(duì)酷狗音樂網(wǎng)站

的數(shù)據(jù)進(jìn)行分析,可以獲得有價(jià)值的信息。這些信息可以用于幫助音樂從業(yè)者

了解音樂市場的趨勢,為音樂制作和營銷提供有效的決策依據(jù)。同時(shí),對(duì)用戶

的行為和喜好進(jìn)行分析,可以為音樂網(wǎng)站提供個(gè)性化推薦服務(wù),提高用戶的黏

性和活躍度。

本次畢業(yè)設(shè)計(jì)旨在介紹如何基于Python編程語言,利用爬蟲技術(shù)采集酷狗

音樂網(wǎng)站的數(shù)據(jù),并使用數(shù)據(jù)分析方法對(duì)數(shù)據(jù)進(jìn)行處理。具體內(nèi)容包括Python

編程語言的基礎(chǔ)知識(shí)、爬蟲技術(shù)的常用框架、酷狗音樂網(wǎng)站的數(shù)據(jù)類型、數(shù)據(jù)

1

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

采集和存儲(chǔ)、以及數(shù)據(jù)分析方法。

首先,將介紹Python編程語言的基礎(chǔ)知識(shí),包括Python的數(shù)據(jù)類型、控

制語句等基本語法,以及Python常用庫的使用。這將為后續(xù)的數(shù)據(jù)采集和分析

提供基礎(chǔ)知識(shí)和技能支持。

其次,將選用Python的爬蟲框架,使用網(wǎng)絡(luò)請求技術(shù)和數(shù)據(jù)解析技術(shù),從

酷狗音樂網(wǎng)站上采集有關(guān)歌曲、歌手、專輯、排行榜、歌單和用戶等數(shù)據(jù)。同

時(shí),還將介紹如何使用Python將采集到的數(shù)據(jù)進(jìn)行存儲(chǔ)和管理。

接著,將應(yīng)用數(shù)據(jù)分析的方法,對(duì)采集到的數(shù)據(jù)進(jìn)行處理。具體包括統(tǒng)計(jì)

音樂流行度、了解音樂類型和地域、分析用戶行為和偏好等方面進(jìn)行。接下來

將使用Python的常用數(shù)據(jù)分析庫及其可視化工具,將數(shù)據(jù)處理結(jié)果用圖表的方

式展示。

本次畢業(yè)設(shè)計(jì)的目的是通過介紹Python編程語言在音樂數(shù)據(jù)采集和分析中

的應(yīng)用,為人們提供有價(jià)值的指導(dǎo)和參考。同時(shí),也希望通過本次畢業(yè)設(shè)計(jì)的

介紹,更好地展示出數(shù)據(jù)分析技術(shù)在音樂產(chǎn)業(yè)和互聯(lián)網(wǎng)市場中的重要性和價(jià)值。

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

1.2.1Python簡介

Python作為一種高級(jí)編程語言,由于其可讀性強(qiáng)、簡潔易懂的特點(diǎn),被廣

泛用于各種任務(wù),包括Web開發(fā)、數(shù)據(jù)分析、人工智能、自動(dòng)化測試等。因?yàn)?/p>

Python的使用語法簡單易學(xué),功能強(qiáng)大,所以在編寫爬取酷狗音樂網(wǎng)的爬蟲代

碼時(shí),使用Python會(huì)事半功倍。

本次畢業(yè)設(shè)計(jì)在使用Python對(duì)酷狗音樂網(wǎng)進(jìn)行數(shù)據(jù)采集與可視化時(shí),將按

以下流程進(jìn)行操作:

(1).數(shù)據(jù)采集:通過Python的網(wǎng)絡(luò)編程和爬蟲庫,如Requests、

BeautifulSoup、etree等,從酷狗音樂網(wǎng)上獲取數(shù)據(jù),并將其保存為合適的數(shù)

據(jù)格式。

(2).數(shù)據(jù)清洗和轉(zhuǎn)換:對(duì)采集的數(shù)據(jù)進(jìn)行清洗和轉(zhuǎn)換,消除重復(fù)數(shù)據(jù)、缺

失數(shù)據(jù)、不規(guī)則數(shù)據(jù),并將數(shù)據(jù)轉(zhuǎn)換為NumPy或Pandas的數(shù)據(jù)結(jié)構(gòu),使得數(shù)據(jù)

易于處理和分析。

(3).數(shù)據(jù)分析和可視化:利用Pandas、Matplotlib庫對(duì)數(shù)據(jù)進(jìn)行分析和可

視化,尋找數(shù)據(jù)的趨勢和規(guī)律,并生成簡潔明了的圖表。

總之,Python的應(yīng)用廣泛,可以通過各種工具和庫,應(yīng)用于各種任務(wù)。在

2

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

數(shù)據(jù)處理和分析領(lǐng)域,Python提供了豐富的工具和庫,可以高效地采集、清洗、

轉(zhuǎn)換和分析數(shù)據(jù),獲得更深入的見解和更準(zhǔn)確的預(yù)測。

1.2.2Pycharm簡介

Pycharm是一款專業(yè)的Python集成開發(fā)環(huán)境(IDE),由JetBrains公司開發(fā)

和維護(hù)。Pycharm提供了強(qiáng)大的編輯、調(diào)試、推理、代碼分析的功能,方便Python

開發(fā)者進(jìn)行高效的編寫和調(diào)試代碼。

以下是本次畢業(yè)設(shè)計(jì)使用Pycharm進(jìn)行Python開發(fā)的基本流程圖,如圖

1-1所示:

圖1-1Python開發(fā)基本流程圖

爬取酷狗音樂網(wǎng)數(shù)據(jù)的具體流程如下:

(1).安裝及配置:下載并安裝Pycharm,并配置Python解釋器。

(2).創(chuàng)建文件:在Pycharm中創(chuàng)建Python文件,并設(shè)置Python文件的代

碼模板。

(3).編寫代碼:在Python文件中編寫代碼,Pycharm支持代碼自動(dòng)補(bǔ)全、

語法高亮等功能,提高編碼的效率。

(4).調(diào)試代碼:使用Pycharm的調(diào)試功能(如調(diào)試窗口、斷點(diǎn)等),定位代

碼錯(cuò)誤,加快調(diào)試進(jìn)度。

(5).運(yùn)行代碼:運(yùn)行Python文件時(shí),Pycharm可以快速創(chuàng)建運(yùn)行配置,方

便對(duì)代碼進(jìn)行調(diào)試和運(yùn)行。

(6).代碼分析:Pycharm提供代碼分析工具(如代碼檢查器、代碼度量工具

等),幫助對(duì)代碼進(jìn)行維護(hù)、排查和改進(jìn)。

總之,Pycharm作為專業(yè)的Python開發(fā)IDE,提供了許多強(qiáng)大的開發(fā)工具,

3

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

使得Python開發(fā)者可以高效地編寫、調(diào)試、推理和分析Python代碼,大大提

高了編碼效率。

1.2.3MySQL簡介

MySQL是一種開源的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS),是一款強(qiáng)大的數(shù)據(jù)庫

工具。它廣泛應(yīng)用于各種應(yīng)用程序和網(wǎng)站,如電子商務(wù)網(wǎng)站、社交網(wǎng)絡(luò)、金融

系統(tǒng)等。通過MySQL可以對(duì)爬取到的酷狗音樂網(wǎng)數(shù)據(jù)進(jìn)行存儲(chǔ),同時(shí)也可以使用

SQL語句進(jìn)行數(shù)據(jù)的查詢、修改和刪除等操作,使數(shù)據(jù)的管理更加高效和簡便。

并提供了一些強(qiáng)大的數(shù)據(jù)分析工具,如聚合函數(shù)、分組查詢和多表連接等。這

些工具可以幫助深入挖掘數(shù)據(jù)背后的信息,分析數(shù)據(jù)的趨勢和規(guī)律,從而更好

地支持業(yè)務(wù)決策和發(fā)展規(guī)劃。

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

(1).安裝MySQL:在官網(wǎng)下載并安裝MySQL,然后創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)表。

(2).連接MySQL:使用MySQL客戶端(如Navicat、SQLyog、MySQLWorkbench

等)連接到MySQL服務(wù)器,并登錄MySQL服務(wù)器。

(3).數(shù)據(jù)庫操作:使用SQL語言(如創(chuàng)建、插入、更新、刪除等操作),對(duì)

數(shù)據(jù)庫進(jìn)行操作,如創(chuàng)建數(shù)據(jù)庫或數(shù)據(jù)表、插入數(shù)據(jù)、更新數(shù)據(jù)、刪除數(shù)據(jù)等。

(4).數(shù)據(jù)表操作:在數(shù)據(jù)表中存儲(chǔ)數(shù)據(jù),包括創(chuàng)建數(shù)據(jù)表、插入數(shù)據(jù)、更

新數(shù)據(jù)、刪除數(shù)據(jù)等。

(5).數(shù)據(jù)查詢:使用SQL語句進(jìn)行數(shù)據(jù)查詢,包括select語句的使用、多

表聯(lián)合查詢、排序和分組等。

(6).數(shù)據(jù)備份和還原:將數(shù)據(jù)庫備份到本地或云端,以便在需要時(shí)進(jìn)行還

原。

總之,MySQL是一種強(qiáng)大的數(shù)據(jù)庫工具,可以用來存儲(chǔ)和管理各種類型的數(shù)

據(jù)。在使用MySQL時(shí),需要按照以上流程進(jìn)行數(shù)據(jù)庫的創(chuàng)建、連接、操作和查

詢。使用MySQL客戶端可以更好的管理和操作MySQL數(shù)據(jù)庫。

2需求分析

2.1可行性需求分析

(1).技術(shù)可行性

酷狗音樂網(wǎng)站上有提供音樂飆升排行榜、抖音熱歌榜、快手熱歌榜、人氣

歌手排行榜、人氣歌曲排行榜等頁面,且大多排行榜數(shù)據(jù)是公開的,可以通過

4

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

爬蟲技術(shù)來輕松獲取數(shù)據(jù)。Python語言在網(wǎng)絡(luò)爬蟲方面有很強(qiáng)的支持,常用的

爬蟲框架如Scrapy、Requests等都可以實(shí)現(xiàn)對(duì)網(wǎng)頁數(shù)據(jù)的采集和解析。對(duì)于通

過爬蟲技術(shù)采集到的數(shù)據(jù),可以使用Python中的數(shù)據(jù)處理庫如etree進(jìn)行數(shù)據(jù)

清洗和分析,也可以使用Matplotlib等可視化庫展示數(shù)據(jù)。

綜上所述,《基于Python的酷狗音樂網(wǎng)數(shù)據(jù)采集與分析》的技術(shù)可行性較

高。為保證酷狗音樂網(wǎng)數(shù)據(jù)采集與分析的技術(shù)可行性,本次畢業(yè)設(shè)計(jì)也將在后

續(xù)的工作中將所有的步驟實(shí)現(xiàn)到位,保證數(shù)據(jù)的準(zhǔn)確性和安全性。

(2).需求可行性

數(shù)據(jù)來源存在且穩(wěn)定:酷狗音樂作為中國使用人數(shù)較多的音樂播放器之一,

是中國極具技術(shù)創(chuàng)新基因的數(shù)字音樂交互服務(wù)提供商??峁芬魳分饕峁┰诰€

文件交互傳輸服務(wù)和互聯(lián)網(wǎng)通訊,采用了先進(jìn)的構(gòu)架設(shè)計(jì)研發(fā),具有網(wǎng)絡(luò)文件

交互功能。通過酷狗,用戶可以方便、快捷、安全地實(shí)現(xiàn)音樂查找,即時(shí)通訊,

文件傳輸,文件共享等網(wǎng)絡(luò)應(yīng)用??峁芬魳纷鳛橐粋€(gè)知名音樂平臺(tái),其排行榜

數(shù)據(jù)是公開的,可通過網(wǎng)頁爬取獲取可行的數(shù)據(jù)資源。

技術(shù)實(shí)現(xiàn)可行:Python作為一種流行的編程語言,擁有許多強(qiáng)大的數(shù)據(jù)分

析和處理庫(如BeautifulSoup、Pandas、Matplotlib等),可以方便地實(shí)現(xiàn)

數(shù)據(jù)采集、處理和分析等功能。

畢業(yè)設(shè)計(jì)實(shí)用性高:隨著大數(shù)據(jù)時(shí)代的到來,人們的聽歌模式也發(fā)生翻天

覆地的變化。通過對(duì)酷狗音樂排行榜數(shù)據(jù)的采集和分析,可以清晰的了解到熱

門音樂的流行趨勢、歌曲的熱度、音樂類型的分布、音樂潮流趨勢等信息,為

用戶選擇音樂做了客觀參考,同時(shí)也對(duì)于音樂愛好者、音樂產(chǎn)業(yè)從業(yè)者、市場

營銷人員等具有實(shí)用價(jià)值。

綜上所述,《基于Python的酷狗音樂網(wǎng)數(shù)據(jù)采集與分析》的需求可行性較

高。保證酷狗音樂網(wǎng)數(shù)據(jù)采集與分析的技術(shù)可行性,本次畢業(yè)設(shè)計(jì)也將在后續(xù)

的工作中將所有的步驟實(shí)現(xiàn)到位,保證數(shù)據(jù)的準(zhǔn)確性和安全性。

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

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

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

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

榜歌曲信息。

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

5

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

樂排行榜列表數(shù)據(jù),包括歌曲名稱、歌手、歌曲時(shí)長等數(shù)據(jù),在對(duì)原始數(shù)據(jù)進(jìn)

行預(yù)處理后,再對(duì)其數(shù)據(jù)進(jìn)行多個(gè)維度的分析。例如,按歌曲時(shí)長對(duì)歌曲進(jìn)行

分類,將歌曲時(shí)長進(jìn)行區(qū)間分布,統(tǒng)計(jì)各個(gè)區(qū)間的歌曲數(shù)量。通過對(duì)歌手進(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ù)是一種通過程序自動(dòng)獲取網(wǎng)頁數(shù)據(jù)的技術(shù)。它使用HTTP通信

協(xié)議,并通過解析HTML、XML和JSON等各種格式的文檔來提取有用的數(shù)據(jù)和信

息。網(wǎng)絡(luò)爬蟲對(duì)于大數(shù)據(jù)、人工智能、數(shù)據(jù)挖掘、搜索引擎等領(lǐng)域都有著重要

的應(yīng)用價(jià)值。

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

流程、爬蟲的系結(jié)構(gòu)、爬蟲的分類以及爬蟲的應(yīng)用。

(1).基本原理:

網(wǎng)絡(luò)爬蟲通過模擬瀏覽器訪問網(wǎng)頁,獲取網(wǎng)頁中的各種信息,同過對(duì)HTML

文檔中的標(biāo)簽進(jìn)行解析,從而獲取數(shù)據(jù),再通過數(shù)據(jù)處理和清洗等流程,使得

數(shù)據(jù)更具有實(shí)用性和參考價(jià)值。

(2).爬蟲的基本流程:

URL管理:先選定一個(gè)種子URL,將其加入待爬隊(duì)列中,使用樹形結(jié)構(gòu)建立

待爬URL集合,當(dāng)某一個(gè)URL被訪問完成,將其從待爬隊(duì)列中排除,并將其他

子URL加入到待爬隊(duì)列中。

網(wǎng)絡(luò)下載:從待爬隊(duì)列中獲取一個(gè)URL,模擬瀏覽器訪問頁面,并將返回的

頁面源代碼下載到本地。

網(wǎng)頁解析:對(duì)于下載的頁面源代碼,要通過解析來提取出需要的數(shù)據(jù),此

時(shí)需要使用DOM樹解析算法,對(duì)于DOM樹中的樹節(jié)點(diǎn)進(jìn)行遍歷查詢,提取出目

標(biāo)數(shù)據(jù)。

數(shù)據(jù)存儲(chǔ):從下載和解析過程中獲取到的數(shù)據(jù)需要進(jìn)行清理和整理,方便

存儲(chǔ)和使用,可以考慮使用存儲(chǔ)結(jié)構(gòu),如文本次畢業(yè)設(shè)計(jì)件、JSON文件、數(shù)據(jù)

庫等方式進(jìn)行存儲(chǔ)。

(3).爬蟲的系結(jié)構(gòu)

爬蟲的系統(tǒng)結(jié)構(gòu)可以分為四層:服務(wù)層、調(diào)度層、解析層和存儲(chǔ)層。

6

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

服務(wù)層:主要包括爬蟲管理界面、任務(wù)狀態(tài)展示等功能,方便爬蟲的管理

和監(jiān)控。

調(diào)度層:主要負(fù)責(zé)任務(wù)安排和網(wǎng)頁的調(diào)度管理,包括URL管理、任務(wù)調(diào)度、

請求發(fā)送等工作,決定爬蟲工作的進(jìn)度和流程。

解析層:主要負(fù)責(zé)解析HTML頁面,以及獲取需要的數(shù)據(jù)和信息。

存儲(chǔ)層:主要負(fù)責(zé)將解析層獲取到的數(shù)據(jù)進(jìn)行格式化處理和存儲(chǔ),整理成

方便后續(xù)使用的數(shù)據(jù)結(jié)構(gòu)。

(4).爬蟲的分類

網(wǎng)絡(luò)爬蟲可以按照不同的分類標(biāo)準(zhǔn)進(jìn)行分類,例如根據(jù)爬取的領(lǐng)域或目標(biāo)、

根據(jù)深度和廣度等分類方式。

根據(jù)爬取領(lǐng)域或目標(biāo):可以分為通用爬蟲和特定領(lǐng)域爬蟲。通用爬蟲一般

爬取全網(wǎng)數(shù)據(jù),而特定領(lǐng)域爬蟲主要面向某一領(lǐng)域。

根據(jù)深度和廣度:可以分為深度優(yōu)先爬蟲、廣度優(yōu)先爬蟲和增量式爬蟲。

深度優(yōu)先爬蟲先爬取當(dāng)前頁面的鏈接,然后進(jìn)入下一個(gè)頁面的鏈接;廣度優(yōu)先

爬蟲則先爬取當(dāng)前頁面的所有鏈接,然后再進(jìn)入下一個(gè)頁面。增量式爬蟲則是

只對(duì)更新的數(shù)據(jù)進(jìn)行爬取。

(5).爬蟲應(yīng)用

網(wǎng)絡(luò)爬蟲應(yīng)用廣泛,例如電商行業(yè)、新聞信息等都需要爬蟲來獲取相關(guān)信

息。以電商為例,通過爬蟲從一些特定的網(wǎng)站上抓取購物信息和用戶評(píng)價(jià),并

進(jìn)行清洗分析,可以分析出哪些產(chǎn)品是消費(fèi)者喜歡的,哪些是值得推銷的,可

以有助于定位市場,為商家提供相應(yīng)的參考。又例如在資訊行業(yè),通過爬蟲從

各大新聞網(wǎng)站獲取新聞信息,再進(jìn)行整理,可以更好地為用戶提供優(yōu)質(zhì)的新聞

服務(wù)。

(6).爬蟲的局限性

在進(jìn)行爬蟲開發(fā)時(shí),需要注意以下兩個(gè)方面的限制:

法律限制:對(duì)于一些受到版權(quán)保護(hù)的內(nèi)容,如圖書、音樂等,需要注意相

關(guān)法律規(guī)定,以免侵犯版權(quán)。

服務(wù)器限制:對(duì)于一些網(wǎng)站,采取了一些防爬機(jī)制,需要一定的技術(shù)手段

繞過,同時(shí)需要遵守相關(guān)服務(wù)器訪問規(guī)則和限制,以免被認(rèn)定為惡意訪問,導(dǎo)

致爬蟲被封禁。

綜上所述,網(wǎng)絡(luò)爬蟲技術(shù)是一種通過程序自動(dòng)獲取網(wǎng)頁數(shù)據(jù)的技術(shù)。爬蟲

的工作流程通常包括URL管理、網(wǎng)絡(luò)下載、網(wǎng)頁解析和數(shù)據(jù)存儲(chǔ)四個(gè)階段,爬

蟲的系統(tǒng)結(jié)構(gòu)可以分為四層:服務(wù)層、調(diào)度層、解析層和存儲(chǔ)。網(wǎng)絡(luò)爬蟲的應(yīng)

7

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

用范圍廣泛,但開發(fā)爬蟲需要注意法律問題和服務(wù)器的訪問規(guī)則。

2.3.2文件存取技術(shù)

Python文件存取技術(shù)是Python編程語言中用于讀寫文件的技術(shù)。文件是計(jì)

算機(jī)中存儲(chǔ)數(shù)據(jù)的一種方式,Python提供了一系列的方法和模塊,使得開發(fā)者

可以輕松地讀取、修改和寫入文件,如:csv、pprint等模塊。

csv是一種常用的文件格式,Python提供了csv模塊用于讀寫csv文件,

下面是一個(gè)寫入csv文件的代碼示例:

#文件存儲(chǔ)

defsave_data(data):

withopen("data/data.csv",'w+',encoding='utf-8')asf:

csv_writer=csv.DictWriter(f,fieldnames=['song','singer','time'],dialect='unix')

foriindata:

csv_writer.writerow(i)

在圖2-1中首先使用csv.DictWriter()函數(shù)創(chuàng)建一個(gè)csv字典寫入器對(duì)象,

接著使用writerows()函數(shù)將數(shù)據(jù)寫入到文件中。下面是一個(gè)讀取csv文件并將

其打印出來的代碼示例:

#輸出數(shù)據(jù)

defparse_data():

withopen("data/data.csv",'r',encoding='utf-8')asf:

data=csv.reader(f)

foriindata:

print(i)

在圖2-2中,首先使用open()函數(shù)以只讀模式打開名為data.csv的文件。

接著使用csv.reader()函數(shù)創(chuàng)建一個(gè)csv讀取器對(duì)象,遍歷文件中的每一行數(shù)

據(jù)并打印出來。pprint模塊是Python標(biāo)準(zhǔn)庫中的一個(gè)用于格式化輸出的模塊,

代碼如下所示:

#輸出數(shù)據(jù)

defparse_data():

withopen("data/data.csv",'r',encoding='utf-8')asf:

data=csv.reader(f)

pprint(data)

在圖2-3中首先使用open()函數(shù)以只讀模式打開名為data.csv的文件,并

將字符集設(shè)置為utf-8。接著使用read()函數(shù)加載數(shù)據(jù),并將其存儲(chǔ)在data變

8

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

量中,最后使用pprint()函數(shù)對(duì)數(shù)據(jù)進(jìn)行格式化輸出。

2.3.3可視化技術(shù)

可視化技術(shù)是指將數(shù)據(jù)、信息、知識(shí)等抽象概念通過圖形、圖表、地圖等

形式呈現(xiàn)出來,使人們可以更直觀、更易于理解地獲取信息和分析數(shù)據(jù)的技術(shù)。

它是數(shù)據(jù)分析領(lǐng)域中的重要一環(huán),具有重要的應(yīng)用價(jià)值。本次畢業(yè)設(shè)計(jì)將詳細(xì)

介紹可視化技術(shù)的相關(guān)概念和技術(shù)流程??梢暬夹g(shù)概述:

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

可視化技術(shù)是指將數(shù)據(jù)、信息、知識(shí)等通過圖形、圖表、地圖等形式呈現(xiàn)

出來的一種技術(shù),使人們可以更直觀、更易于理解地獲取信息和分析數(shù)據(jù)的能

力。

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

可視化技術(shù)可以幫助人們更直觀地理解數(shù)據(jù)和信息,更快速地獲取有價(jià)值

的信息和洞察,從而支持決策制定和問題解決。它可以用于數(shù)據(jù)分析、商業(yè)智

能、科學(xué)分析、市場營銷等領(lǐng)域。

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

可視化技術(shù)可以根據(jù)不同的數(shù)據(jù)類型和呈現(xiàn)方式進(jìn)行分類。常見的分類方

法有以下三種:

(1).數(shù)據(jù)類型分類

按數(shù)據(jù)類型可分為:數(shù)值型、文本型、圖像型、多媒體型等。

(2).呈現(xiàn)方式分類

按呈現(xiàn)方式可分為:圖表、地圖、散點(diǎn)圖、熱力圖、樹狀圖、網(wǎng)絡(luò)圖等。

(3).工具分類

按工具分類可分為:Tableau、PowerBI、D3.js、ECharts、R、Python等。

可視化技術(shù)的流程包括數(shù)據(jù)準(zhǔn)備、數(shù)據(jù)清洗、數(shù)據(jù)分析、可視化呈現(xiàn)和反

饋調(diào)整等環(huán)節(jié)。下面將分別進(jìn)行詳細(xì)介紹。

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

數(shù)據(jù)準(zhǔn)備是可視化技術(shù)的第一步。在這一步中,需要確定數(shù)據(jù)來源、數(shù)據(jù)

類型、數(shù)據(jù)格式等。數(shù)據(jù)來源可以是數(shù)據(jù)庫、文件、API等,數(shù)據(jù)類型可以是數(shù)

值型、文本型、圖像型等,數(shù)據(jù)格式可以是csv、JSON、XML等。

(2).數(shù)據(jù)清洗

數(shù)據(jù)清洗是可視化技術(shù)的第二步。在這一步中,需要對(duì)數(shù)據(jù)進(jìn)行清洗、去

重、處理缺失值和異常值等操作。數(shù)據(jù)清洗是保證數(shù)據(jù)質(zhì)量的重要環(huán)節(jié),只有

9

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

數(shù)據(jù)質(zhì)量好才能保證后續(xù)的分析和可視化呈現(xiàn)的效果。

(3).數(shù)據(jù)分析

數(shù)據(jù)分析是可視化技術(shù)的第三步。在這一步中,需要對(duì)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析、

分類、聚類等操作。數(shù)據(jù)分析是為了深入了解數(shù)據(jù)的內(nèi)在規(guī)律和特征,以便更

好地進(jìn)行可視化呈現(xiàn)。

(4).可視化呈現(xiàn)

可視化呈現(xiàn)是可視化技術(shù)的核心環(huán)節(jié)。在這一步中,需要根據(jù)數(shù)據(jù)類型和

呈現(xiàn)方式選擇合適的可視化工具和技術(shù),如Tableau、PowerBI、D3.js、ECharts

等。可視化呈現(xiàn)有多種形式,如圖表、地圖、熱力圖、網(wǎng)絡(luò)圖等。

(5).反饋調(diào)整

反饋調(diào)整是可視化技術(shù)流程的最后一步。在這一步中,需要根據(jù)用戶的反

饋和需求對(duì)可視化呈現(xiàn)進(jìn)行調(diào)整和改進(jìn)。只有不斷地進(jìn)行反饋調(diào)整,才能達(dá)到

最佳的可視化效果。

總之,可視化技術(shù)是數(shù)據(jù)分析領(lǐng)域中的重要一環(huán),具有廣泛的應(yīng)用價(jià)值。

通過合適的可視化工具和技術(shù),可以更好地展現(xiàn)數(shù)據(jù)和信息的內(nèi)在規(guī)律和趨勢,

從而支持決策制定和問題解決。

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

3.1采集頁面分析

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

酷狗TOP500頁面觀察,如圖3-1所示,其中URL為:

/yy/rank/home/1-8888.html發(fā)現(xiàn)網(wǎng)站無分頁按鈕。再

找到其余榜單進(jìn)行觀察,經(jīng)過試驗(yàn)發(fā)現(xiàn)可以通過修改“/home/”后‘-’前的

數(shù)字可以訪問該榜單后面的頁數(shù),而修改“/home/”后‘-’后的數(shù)字則可以

訪問其余的榜單。

10

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

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

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

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

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

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

11

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

3.2字段分析

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

擊所需數(shù)據(jù)就會(huì)定位到所需要的數(shù)據(jù)在網(wǎng)頁中的位置,如圖3-3所示:

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

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

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

中。

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

使用import導(dǎo)入所需庫,通過導(dǎo)入模塊,就可以使用該模塊中提供的各種

函數(shù)、類或變量等。代碼實(shí)現(xiàn)如下:

importrequests,json,time,csv

fromlxmlimportetree

frompprintimportpprint

可以看到導(dǎo)入庫并未標(biāo)紅報(bào)錯(cuò),接下來就可以調(diào)用庫了。如果庫名標(biāo)紅則

通常有以下幾種原因:

(1).沒有正確安裝需要導(dǎo)入的庫,需要使用pip等工具進(jìn)行安裝。

(2).導(dǎo)入的庫名拼寫錯(cuò)誤,需要檢查拼寫是否正確。

(3).IDE或代碼編輯器沒有正確識(shí)別庫名,需要進(jìn)行相關(guān)配置或更新。

把上面幾種原因全部檢查一遍,就可以導(dǎo)入庫了。

12

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

當(dāng)庫導(dǎo)入完成后,就需要設(shè)置請求頭了。設(shè)置請求頭可以讓服務(wù)器知道請

求來源的信息,包括瀏覽器類型、操作系統(tǒng)類型、語言環(huán)境等等,同時(shí)還可以

包含一些額外的信息,如用戶身份認(rèn)證信息、Cookie信息等。通過設(shè)置請求頭,

服務(wù)器可以更好地處理請求,提高請求的響應(yīng)速度和準(zhǔn)確率。此外,有些網(wǎng)站

會(huì)根據(jù)請求頭信息來限制對(duì)其網(wǎng)站的訪問,如果沒有正確設(shè)置請求頭,可能會(huì)

被網(wǎng)站識(shí)別為爬蟲程序,導(dǎo)致訪問被拒絕或者被封禁IP地址。這時(shí)就需要設(shè)置

請求頭,偽裝成瀏覽器去訪問服務(wù)器,代碼實(shí)現(xiàn)如下:

#設(shè)置請求頭

ua={

'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,

likeGecko)Chrome/Safari/537.36Edg/109.0.1518.78',

}

將準(zhǔn)備工作全部做完后,就可以開始編寫代碼爬取酷狗排行榜的數(shù)據(jù)了,

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

importrequests,json,time,csv

fromlxmlimportetree

frompprintimportpprint

#設(shè)置請求頭

ua={

'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,

likeGecko)Chrome/Safari/537.36Edg/109.0.1518.78',

}

#獲取酷狗排行榜數(shù)據(jù)

defget_data(n):

i=1

while(i>0):

if(n!='8888'andi>5):

return

elif(i>23):

return

url=f"/yy/rank/home/{i}-{n}.html?from=rank"

rq=requests.get(url,headers=ua).content.decode('utf-8')

html=etree.HTML(rq)

j=1

try:

while(j>0):

song=

html.xpath(f'//*[@id="rankWrap"]/div[2]/ul/li[{j}]/a/text()')[0].replace('\t','').replace('\n','')

13

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

singer=

html.xpath(f'//*[@id="rankWrap"]/div[2]/ul/li[{j}]/a/span/text()')[0].replace("\n",

"").replace("\t","").split('-')[1]

time=

html.xpath(f'//*[@id="rankWrap"]/div[2]/ul/li[{j}]/span[4]/span/text()')[0].replace("\n","").replac

e("\t","")

item={

"song":song,

"singer":singer,

"time":time,

}

print(item)

data.append(item)

j+=1

except:

print(j)

i+=1

#文件存儲(chǔ)

defsave_data(data):

withopen("data/data1.csv",'w+',encoding='utf-8')asf:

csv_writer=csv.DictWriter(f,fieldnames=['song','singer','time'],dialect='unix')

foriindata:

csv_writer.writerow(i)

#輸出數(shù)據(jù)

defparse_data():

withopen("data/data.csv",'r',encoding='utf-8')asf:

data=csv.reader(f)

foriindata:

print(i)

if__name__=='__main__':

data=[]

dic={

'酷狗TOP500':'8888',

'蜂鳥流行音樂榜':'59703',

'快手熱歌榜':'52767',

'DJ熱歌榜':'24971'

}

foriindic.values():

get_data(i)

time.sleep(1)

save_data(data)

parse_data()

14

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

上述代碼通過requests模塊的get函數(shù)獲取酷狗音樂排行榜頁面的HTML

代碼,然后使用lxml模塊對(duì)HTML代碼進(jìn)行解析,提取出排行榜中每首歌的排

名、歌曲名、歌手名和時(shí)長等信息。接著將這些信息存儲(chǔ)到一個(gè)列表中,并通

過csv模塊將列表中的數(shù)據(jù)保存到一個(gè)csv文件中。最后使用csv模塊讀取保

存的csv文件,并將數(shù)據(jù)輸出到控制臺(tái)上。

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

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

反復(fù)確定爬取過來的數(shù)據(jù)是否存在無效值和確實(shí)值,保證數(shù)據(jù)的一致性,這對(duì)

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

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

此外,還需要將爬下來的數(shù)據(jù)和網(wǎng)頁原數(shù)據(jù)進(jìn)行比對(duì),檢查是否出現(xiàn)空值、

錯(cuò)值,以及數(shù)據(jù)的位置是否正確。根據(jù)不同的需求,要求對(duì)數(shù)據(jù)進(jìn)行不同的處

理。

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

數(shù)據(jù)清洗是數(shù)據(jù)分析的重要步驟之一,它的目的是去除數(shù)據(jù)中的噪聲、錯(cuò)

誤和不一致性,以提高數(shù)據(jù)的準(zhǔn)確性、完整性和一致性。數(shù)據(jù)清洗能夠幫助發(fā)

現(xiàn)數(shù)據(jù)中存在的問題,比如缺失值、重復(fù)值、異常值、不一致的格式和單位等,

進(jìn)而對(duì)數(shù)據(jù)進(jìn)行處理和轉(zhuǎn)換,使其能夠更好地支持分析工作。如果不進(jìn)行數(shù)據(jù)

清洗,那么可能會(huì)導(dǎo)致分析結(jié)果出現(xiàn)偏差,甚至影響到業(yè)務(wù)決策。因此,數(shù)據(jù)

清洗在數(shù)據(jù)分析過程中是非常重要的一步。

首先,需要先使用pandas庫將數(shù)據(jù)進(jìn)行導(dǎo)入并輸出,如圖4-1所示。

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

15

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

經(jīng)過反復(fù)比對(duì)和檢查后發(fā)現(xiàn)數(shù)據(jù)不存在缺失、錯(cuò)位和空值,再根據(jù)需求將

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

查所需要的數(shù)據(jù),后將其整理為csv格式存入data.csv文件中,留存后續(xù)作為

統(tǒng)計(jì)分析、可視化使用,如圖4-2所示。

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

將數(shù)據(jù)清洗完成后就可以進(jìn)行下一步的存儲(chǔ)操作了。

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

數(shù)據(jù)儲(chǔ)存得方法有許許多多種,常見的有:直接用記事本格式儲(chǔ)存(txt)

或者直接用其他文件的形式儲(chǔ)存(如:csv、excel、json等),但使用以上方法

保存的數(shù)據(jù)體量普遍都比較小。如需要儲(chǔ)存較大的數(shù)據(jù)信息就需要用到數(shù)據(jù)資

源庫,數(shù)據(jù)庫有兩種分類,分為關(guān)系型和非關(guān)系型數(shù)據(jù)庫。關(guān)系型數(shù)據(jù)庫比較

典型的有MySQL和Oracle等,非關(guān)系型數(shù)據(jù)庫等以鍵值對(duì)形式儲(chǔ)存數(shù)據(jù)的代表

有Mongodb、Redis等。本次畢業(yè)設(shè)計(jì)用到的是csv、MySQL。

由于csv文件格式簡單,且?guī)缀跛杏?jì)算機(jī)系統(tǒng)和軟件應(yīng)用程序都支持,

因此可以使用csv格式來存儲(chǔ)數(shù)據(jù)。然而,當(dāng)面對(duì)大規(guī)模數(shù)據(jù)或需要頻繁查詢

和修改的應(yīng)用時(shí),建議使用MySQL數(shù)據(jù)庫進(jìn)行存儲(chǔ)和管理,以保障數(shù)據(jù)的安全

性和高效性。因此,在選擇存儲(chǔ)方式時(shí),應(yīng)該根據(jù)數(shù)據(jù)規(guī)模和應(yīng)用場景進(jìn)行權(quán)

衡。對(duì)于小規(guī)模數(shù)據(jù),csv文件是一種不錯(cuò)的選擇,可以利用Python將數(shù)據(jù)寫

入csv中。代碼實(shí)現(xiàn)如下:

#文件存儲(chǔ)

16

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

defsave_data(data):

withopen("data/data.csv",'w+',encoding='utf-8')asf:

csv_writer=csv.DictWriter(f,fieldnames=['song','singer','time'],dialect='unix')

foriindata:

csv_writer.writerow(i)

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

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

示。

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

將數(shù)據(jù)存儲(chǔ)到MySQL后,就可以通過SQL語句來對(duì)數(shù)據(jù)進(jìn)行清洗操作了。

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

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

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

了3個(gè)字段:song、singer和time。接著將導(dǎo)入設(shè)置local_infile開啟,再

使用loaddata命令將一個(gè)名為"data.csv"的本地文件中的數(shù)據(jù)導(dǎo)入到test表

中,數(shù)據(jù)以逗號(hào)分隔,每行以回車換行符結(jié)束,忽略第一行(因?yàn)榈谝恍型ǔ?/p>

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

據(jù)是否正確。

具體實(shí)現(xiàn)步驟如下為:在創(chuàng)建數(shù)據(jù)庫時(shí),需要注意修改字符集,以確保數(shù)

據(jù)庫可以正確地顯示中文。在MySQL中,可以使用以下命令來創(chuàng)建一個(gè)名為

"data"的數(shù)據(jù)庫,并設(shè)置字符集為"utf-8",如圖4-4所示。

17

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

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

這將創(chuàng)建一個(gè)使用UTF-8編碼的數(shù)據(jù)庫,以便正確地存儲(chǔ)和顯示中文數(shù)據(jù)。

同時(shí),還可以使用其他字符集,如"utf8mb4"或"gbk"等,根據(jù)具體需求來選擇

適合的字符集。創(chuàng)建數(shù)據(jù)庫后,還可以使用各種SQL命令來創(chuàng)建表格、插入數(shù)

據(jù)等操作,以滿足用戶對(duì)數(shù)據(jù)存儲(chǔ)和管理的需求。

在MySQL中,可以使用以下命令來創(chuàng)建一個(gè)名為"test"的數(shù)據(jù)表,并設(shè)置

四個(gè)字符型變量"rank_"、"song"、"singer"和"time",如圖4-5所示。

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

這將創(chuàng)建一個(gè)包含四個(gè)字符型變量的數(shù)據(jù)表,每個(gè)變量分別為其設(shè)置了合

適的最大長度。可以根據(jù)具體需求來設(shè)置變量的長度和類型,如整型、浮點(diǎn)型

等。創(chuàng)建數(shù)據(jù)表后,可以使用各種SQL命令來插入、更新、刪除和查詢數(shù)據(jù),

以滿足人們對(duì)數(shù)據(jù)存儲(chǔ)和管理的需求。同時(shí),還可以使用各種工具和庫,如MySQL

Workbench、PHP、Python等,來更加方便地操作和管理MySQL數(shù)據(jù)庫。

18

湖南商務(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所示。

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

隨后再打開MySQL配置文件,在[mysqld]節(jié)點(diǎn)添加相關(guān)語句,然后保存配

置文件并重啟MySQL服務(wù),使配置文件生效即可。接下來就要用loaddata函數(shù)

導(dǎo)入本地data.csv表格數(shù)據(jù)了,如圖4-8所示,是一種常見的在MySQL數(shù)據(jù)庫

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

使用loaddata函數(shù)導(dǎo)入數(shù)據(jù)時(shí),需要指定csv文件的路徑、MySQL表的名稱以

及數(shù)據(jù)列的順序和類型。

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

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

據(jù)表名,F(xiàn)IELDSTERMINATEDBY','表示數(shù)據(jù)文件中的字段是用逗號(hào)分隔的,

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

最后再使用select函數(shù)驗(yàn)證存入數(shù)據(jù)是否正確,如圖4-9所示,這是一種

常見的在MySQL數(shù)據(jù)庫中查詢數(shù)據(jù)的方法。該函數(shù)可以從MySQL表中檢索數(shù)據(jù),

并將其返回到結(jié)果集中。在使用select函數(shù)查詢數(shù)據(jù)時(shí),需要指定要檢索的表

19

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

名,以及一些可選的查詢條件,例如where語句和orderby語句等。

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

將select函數(shù)查詢MySQL表中保存的數(shù)據(jù)與其原始數(shù)據(jù)進(jìn)行比較,以確保

數(shù)據(jù)已正確存儲(chǔ)。將數(shù)據(jù)清洗并存儲(chǔ)后,就可以開始進(jìn)行下一步,數(shù)據(jù)統(tǒng)計(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)對(duì)象cursor,

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

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

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

并執(zhí)行查詢操作。再使用cursor.fetchall()獲取查詢結(jié)果,將結(jié)果保存到data

變量中。接著創(chuàng)建一個(gè)新的csv文件,并將data變量中的數(shù)據(jù)寫入到文件中。

最后關(guān)閉cursor和mydb連接,釋放資源,如圖5-1所示。

20

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

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

在加載完源數(shù)據(jù)之后,可以使用pandas庫提供的各種方法和函數(shù)進(jìn)行數(shù)據(jù)

分析和處理,例如數(shù)據(jù)清洗、數(shù)據(jù)篩選、數(shù)據(jù)聚合和數(shù)據(jù)可視化等。pandas庫

是Python數(shù)據(jù)分析的重要工具之一,它提供了豐富的數(shù)據(jù)結(jié)構(gòu)和函數(shù),可以幫

助人們更輕松地處理和分析數(shù)據(jù)。當(dāng)數(shù)據(jù)準(zhǔn)備完成后,就可以開始進(jìn)行數(shù)據(jù)的

可視化分析了。

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

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

讀取data.csv文件后,使用Pandas庫將其轉(zhuǎn)換為DataFrame對(duì)象。然后

從DataFrame對(duì)象中提取“song”列的數(shù)據(jù)傳遞給wordCloud函數(shù),并將其作

為輸入傳遞給WordCloud庫,WordCloud庫再導(dǎo)入中文字體文件并生成一個(gè)詞云

圖。生成的詞云圖將被保存為文件“testcloud.png”,并在屏幕上顯示。代碼

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

importpandasaspd

importnumpyasnp

importmatplotlib.pyplotasplt

fromwordcloudimportWordCloud

#歌曲名繪制詞云

21

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

defwordCloud(data):

str=''

foriindata:

str+=i+''

wc=WordCloud(font_path=r'D:\字體\simhei.ttf')

wc.generate(str)

wc.to_file('data/testcloud.png')

plt.imshow(wc)

plt.show()

if__name__=='__main__':

df=pd.read_csv("data/data.csv",encoding='utf-8',names=['rank','song','singer','time'])

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

wordCloud(data['song'])

對(duì)于表格中歌曲名字段數(shù)據(jù)的匯總和處理,可以統(tǒng)計(jì)其出現(xiàn)頻率并生成特

定序列。根據(jù)特定序列中的數(shù)據(jù)詞頻,就可以得到一張依據(jù)歌曲名進(jìn)行統(tǒng)計(jì)后

可視化的詞云圖,如圖5-2所示。

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

在圖5-2中,可以看到Live出現(xiàn)的頻率最高。需要注意的是,Live作為歌

曲后綴表示這首歌的版本是現(xiàn)場版。相對(duì)于錄音室版,現(xiàn)場版的混音質(zhì)量往往

要差一些。聲場擺位不夠精細(xì),混響也有些夸張。此外,時(shí)不時(shí)還會(huì)插入觀眾

的尖叫聲,歌手的聲音動(dòng)態(tài)范圍也比較大,聽起來可能會(huì)有些混亂。但是,為

什么還有許多人喜歡聽Live版呢?其中有兩個(gè)主要原因。首先,現(xiàn)場表演有一

種獨(dú)特的氛圍,歌手的歌聲、觀眾的合唱聲、樂器聲等一系列音樂元素在現(xiàn)場

交融,形成了一種震撼人心的感覺。其次,現(xiàn)場表演有一種團(tuán)體動(dòng)力,音樂能

22

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

夠自然地流轉(zhuǎn)在現(xiàn)場,觀眾們也會(huì)被音樂所帶動(dòng),跟隨著節(jié)奏一起舞動(dòng)。這些

因素都是讓大多數(shù)酷狗用戶喜歡聽Live音樂的原因之一。

此外,還可以觀察到上榜的歌曲大部分都是情歌,并且許多歌曲名帶有

Explicit、Love等英文單詞。Explicit在詞典上的含義是“直言的、清晰的、

毫不避諱的”,在歌名上大多作為后綴存在。這個(gè)單詞的出現(xiàn)意味著這首歌有

些“露骨”,即歌詞中含有限制級(jí)的粗口,表示這首歌是未刪減版本。這表明

了現(xiàn)在人們的生活壓力越來越大,喜歡通過“發(fā)泄式”聽歌來減壓。可以看出,

現(xiàn)在的聽歌習(xí)慣與從前相比已經(jīng)發(fā)生了許多的改變。而

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論