版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教初二下冊物理《期末考試試題》含答案
- 二零二五年度電子商務(wù)平臺(tái)承包經(jīng)營權(quán)抵押貸款合同3篇
- 理解質(zhì)量控制的重要性
- 2025年代理服務(wù)費(fèi)分成合同
- 二零二五年度抽沙船租賃與海岸修復(fù)合同3篇
- 房地產(chǎn)市場的監(jiān)管與政策解讀
- 2025年產(chǎn)品售后服務(wù)合同
- 二零二五版門衛(wèi)室安全防護(hù)系統(tǒng)改造合同4篇
- 2025年民生人壽保險(xiǎn)內(nèi)蒙古分公司招聘筆試參考題庫含答案解析
- 2025年度養(yǎng)老地產(chǎn)個(gè)人集資房買賣合同4篇
- 數(shù)學(xué)-山東省2025年1月濟(jì)南市高三期末學(xué)習(xí)質(zhì)量檢測濟(jì)南期末試題和答案
- 中儲(chǔ)糧黑龍江分公司社招2025年學(xué)習(xí)資料
- 河南退役軍人專升本計(jì)算機(jī)真題答案
- 湖南省長沙市2024-2025學(xué)年高一數(shù)學(xué)上學(xué)期期末考試試卷
- 船舶行業(yè)維修保養(yǎng)合同
- 駕駛證學(xué)法減分(學(xué)法免分)試題和答案(50題完整版)1650
- 2024年林地使用權(quán)轉(zhuǎn)讓協(xié)議書
- 物流有限公司安全生產(chǎn)專項(xiàng)整治三年行動(dòng)實(shí)施方案全國安全生產(chǎn)專項(xiàng)整治三年行動(dòng)計(jì)劃
- 2025屆江蘇省13市高三最后一卷生物試卷含解析
- 產(chǎn)鉗助產(chǎn)護(hù)理查房
- 招聘專員轉(zhuǎn)正述職報(bào)告
評(píng)論
0/150
提交評(píng)論