基于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頁,還剩19頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

目錄

1引言1

1.1畢業(yè)設(shè)計背景1

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

1.2.1Python簡介1

1.2.2Anaconda簡介2

1.2.3Jypyternotebook簡介2

1.2.4Python第三方庫簡介3

2需求分析3

2.1可行性需求分析3

2.2采集目標功能分析4

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

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

2.3.2文件存取技術(shù)5

2.3.3可視化技術(shù)5

3下廚房網(wǎng)數(shù)據(jù)采集6

3.1采集頁面分析6

3.2字段分析8

3.3編程實現(xiàn)10

3.3.1導(dǎo)入所需庫10

3.3.2頁面解析10

3.3.3數(shù)據(jù)獲取10

3.3.4網(wǎng)頁數(shù)據(jù)存儲11

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

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

4.1.1數(shù)據(jù)預(yù)覽12

4.1.2菜名重復(fù)數(shù)據(jù)去除13

4.1.3無效值、缺失值處理13

I

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

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

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

5.1數(shù)據(jù)準備15

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

5.2.1各菜系菜譜數(shù)量占比餅圖16

5.2.2最受歡迎的十二道菜折線圖17

5.2.3菜譜評分分布玫瑰圖18

5.2.4作者發(fā)布菜品數(shù)量及平均分柱狀圖19

5.2.5用料詞云圖20

5.3綜述20

6小結(jié)21

參考資料22

II

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

基于Python的下廚房美食網(wǎng)站數(shù)據(jù)采集與分析

1引言

當今世界未有之大變局,Internet成為21世紀備受關(guān)注的行業(yè)之一,它的

高速發(fā)展和在全球的普及應(yīng)用正在給人類生活帶來革命性變化,正是我們這一

代年輕人應(yīng)該抓住的時機和機會。衣食住行各個方面產(chǎn)生的海量數(shù)據(jù)之前被人

忽略,時代的發(fā)展讓人們知道了數(shù)據(jù)分析的重要性,通過巨大的信息網(wǎng)絡(luò)中發(fā)

現(xiàn)的蛛絲馬跡卻能給人們帶來極大的便利。

1.1畢業(yè)設(shè)計背景

一日三餐維持著最基本的生存,而對于中國這個14億人口的大國,一方山

水養(yǎng)一方人,不同的飲食習慣也由此產(chǎn)生。前一陣子的疫情原因使得人們外出

活動變少,對于吃來說依舊是不馬虎,在各種格式的美食分享網(wǎng)站和app中尋

找自己的食譜。

對于一家美食網(wǎng)站而言,菜譜種類以及數(shù)量質(zhì)量直接決定了用戶數(shù)量,我們

需要對網(wǎng)頁進行解析,然后通過Python爬蟲的手段批量獲取我們想要的分類下

的內(nèi)容。我的畢業(yè)設(shè)計就是通過分析下廚房網(wǎng)站,然后爬取該網(wǎng)站下一欄下的分

類菜譜數(shù)據(jù),對爬取下來的數(shù)據(jù)進行預(yù)處理、分析、可視化等步驟。繁雜的數(shù)據(jù)

經(jīng)過清洗加分析后通過圖片展示,網(wǎng)站可以參考數(shù)據(jù)制定策略優(yōu)化內(nèi)容,大家就

可以清楚知道哪些菜譜是最近的熱門菜譜,哪些調(diào)料和食材用的多,購買相應(yīng)

的材料跟上熱潮,有哪些優(yōu)秀作者值得關(guān)注。我的畢業(yè)設(shè)計包含數(shù)據(jù)爬取、清

洗處理、儲存、可視化分析。

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

1.2.1Python簡介

Python由荷蘭數(shù)學和計算機科學研究學會的吉多·范羅蘇姆于1990年代

初設(shè)計,作為一門叫做ABC語言的替代品。Python語言具有簡單、易學、易讀、

易維護等特點,被廣泛應(yīng)用于Web開發(fā)、數(shù)據(jù)分析、機器學習、人工智能、科

學計算等領(lǐng)域。作為一種解釋性語言,Python不需要預(yù)編譯,在運行時需要解

釋器逐行執(zhí)行程序。Python語言的語法簡潔明了,使用縮進代替了大括號來表

1

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

示程序的塊結(jié)構(gòu),這也使得代碼易讀性較高。

Python語言擁有大量的標準庫和第三方庫,包含了各種常用工具和功能模

塊,例如文件操作、網(wǎng)絡(luò)通信、數(shù)據(jù)處理、GUI編程、圖像處理、文本處理、機

器學習、深度學習、科學計算等。這些庫可以幫助開發(fā)者更加便捷地實現(xiàn)代碼

編寫,提高了生產(chǎn)效率。Python提供了高效的高級數(shù)據(jù)結(jié)構(gòu),還能簡單有效地

面向?qū)ο缶幊獭?/p>

除此之外,Python還有豐富的社區(qū)支持,Python社區(qū)中有眾多開源的工具

和框架,例如Django、Flask、PyTorch、Tensorflow、Numpy、Pandas等等,

這些開源工具和框架為Python生態(tài)系統(tǒng)的發(fā)展提供了強大的支持和推動。隨著

版本的不斷更新和語言新功能的添加,Python逐漸被用于獨立的、大型畢業(yè)設(shè)

計的開發(fā)。

1.2.2Anaconda簡介

Anaconda中文直譯過來就是大蟒蛇,它是一個開源的python發(fā)行版本,包

含了conda、python還有一大堆安裝好的工具包,Anaconda主要包含以下四個

部分:

Conda:是Anaconda的包管理和環(huán)境管理工具。它可以方便地創(chuàng)建、刪除

和切換不同的Python環(huán)境,并可以在不同的Python環(huán)境中安裝和管理不同的

包和庫。

Python:Anaconda自帶了Python解釋器,用戶可以直接在Anaconda環(huán)境

中開發(fā)和運行Python程序。

Packages:Anaconda自帶了大量的Python科學計算和數(shù)據(jù)分析的包和庫,

例如Numpy、Scipy、Pandas、Matplotlib、Scikit-learn等等。這些包和庫可

以直接在Anaconda環(huán)境中使用,無需額外安裝。

GUI:Anaconda還提供了一個名為AnacondaNavigator的圖形化界面,可

以方便地管理和使用環(huán)境、包和庫。

1.2.3Jypyternotebook簡介

Jupyternotebook是一種基于瀏覽器的工具。如果你想使用Python在

JupyterNotebook中進行編程,首先需要在本地安裝Python和Jupyter

Notebook環(huán)境。一般來說,你可以通過安裝一個Python發(fā)行版,例如Anaconda

來方便地獲得這兩者。安裝好后,你可以在終端中打開JupyterNotebook,它

會自動在瀏覽器中開啟一個網(wǎng)頁,顯示Notebook主頁。

2

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

在Notebook中,每個Notebook都由一系列單元格組成。這些單元格可以

包含代碼、Markdown文本或者Raw文本。你可以在單元格中編寫Python代碼,

逐個運行代碼單元格并獲像一個筆記本它將實時代碼、說明文本、數(shù)學方程、

可視化內(nèi)容結(jié)合起來,放在一個可共享的文檔中而且它支持Markdown標記語言,

在瀏覽器編輯界面可以很方便的添加注釋。在jypyternotebook執(zhí)行代碼的時

候?qū)τ谧⑨屝晕谋静⒉粫?zhí)行,極大的方便了老師教學,或者開發(fā)者講解畢業(yè)設(shè)

計。

1.2.4Python第三方庫簡介

Python第三方庫在使用前要先進行安裝。

requests:requests庫建立在Python語言的urllib3庫基礎(chǔ)上,更為簡潔,

是一個處理HTTP請求的第三方庫,它的最大優(yōu)點是程序編寫過程更接近URL訪

問過程。

Csv:csv屬于python中的內(nèi)置模塊,它能夠讀取csv格式的文件或者將數(shù)

據(jù)存入到csv表格中,csv是表格和數(shù)據(jù)庫中常見的文件操作格式。

NumPy庫是Python數(shù)據(jù)分析的基礎(chǔ),用于處理多維數(shù)組,可以存儲和處理大

型矩陣,它還提供了高級的數(shù)值編程工具,計算比python提供的列表結(jié)構(gòu)要高

效的多。

pandas:基于numpy擴展的一個重要第三方庫,它是為了解決數(shù)據(jù)分析任

務(wù)而創(chuàng)建的。pandas提供了一批標準的數(shù)據(jù)模型和大量快速便捷出來數(shù)據(jù)的函

數(shù)和方法,提供了高效的操作大型數(shù)據(jù)集所需要的工具。

matplotlib:繪圖庫,主要是偏向于二維繪圖包括折線圖、條形圖、扇形圖、

散點圖、直方圖等等。

Pyecharts:將python與echarts結(jié)合的強大的數(shù)據(jù)可視化工具。使用

pyecharts可以生成獨立的網(wǎng)頁,也可以在flask,Django中集成使用。

2需求分析

2.1可行性需求分析

1、技術(shù)可行性

Python是面向?qū)ο笳Z言中的一門通俗易懂的計算機編程語言,本次畢業(yè)設(shè)

計中使用Python編寫程序來實現(xiàn)數(shù)據(jù)獲取,數(shù)據(jù)清洗預(yù)處理,數(shù)據(jù)可視化。在數(shù)

據(jù)獲取的過程中通過抓包分析發(fā)現(xiàn)下廚房網(wǎng)站編寫代碼得到網(wǎng)頁面數(shù)據(jù)的返回

3

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

值。隨后將爬取出來的原始數(shù)據(jù)暫時以csv格式儲存起來,隨后用python自帶

的庫來實現(xiàn)數(shù)據(jù)可視化的內(nèi)容。

以上為此次畢業(yè)設(shè)計的技術(shù)可行性,我也將在后續(xù)的工作中將所有的步驟

實現(xiàn)到位,保證數(shù)據(jù)的準確性和安全性。

2、畢業(yè)設(shè)計可行性

民以食為天,本次畢業(yè)設(shè)計通過采集比較美食社區(qū)中位居前列的下廚房網(wǎng)

站來分析大眾喜愛的美食。我們也將從菜品種類、評分及菜系等方面對其進行

剖析,分析出有價值的信息,將其可視化最后根據(jù)結(jié)果得出結(jié)論。

2.2采集目標功能分析

本次畢業(yè)設(shè)計的數(shù)據(jù)集的來源是下廚房網(wǎng)站,是通過python爬取下廚房網(wǎng)

站部分分欄下不同菜系下的信息。數(shù)據(jù)清洗后共833條記錄,爬取完成后盡可能

的檢查數(shù)據(jù)的準確性,確定爬取出來的數(shù)據(jù)無誤。

分析下廚房網(wǎng)站網(wǎng)頁信息,我們需要爬取的參數(shù)有菜品、鏈接、用料、評分、

作者、菜系等數(shù)據(jù),在對原始數(shù)據(jù)進行預(yù)處理后我們會對其數(shù)據(jù)進行分析。例如,

從菜系的數(shù)量對其進行分析對比,查看各個菜系有多少,大眾更偏好的是哪一種,

通過菜品平均分占比來網(wǎng)站可以參考內(nèi)容要做哪些方面的調(diào)整。通過最近7天

內(nèi)做過菜品人數(shù)字段對比來獲取最近大家都在做哪些菜,根據(jù)用料繪制詞云圖

來看哪些調(diào)料和食材用的多。又或者想要關(guān)注一些優(yōu)質(zhì)作者分享的菜品,那么我

們就可以根據(jù)作者分組來統(tǒng)計每個作者的菜品數(shù)量,和菜品評分的平均分來分

析出哪些是值得關(guān)注的作者。

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

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

上網(wǎng)時都會遇到需要緩存在本地的數(shù)據(jù),當數(shù)量比較小的時候我們可以自

己采取手動下載的方式去獲得想要的數(shù)據(jù),不過在我們的大數(shù)據(jù)領(lǐng)域接觸到的

數(shù)據(jù)量是非常大的。如果我們需要獲取的數(shù)據(jù)量極為龐大,這個時候一個一個

去點擊下載獲取數(shù)據(jù)無疑是很麻煩的,能不能有一種辦法可以讓電腦幫我點擊

下載,幫我收集資料呢。

網(wǎng)絡(luò)爬蟲就可以幫助我們,網(wǎng)絡(luò)爬蟲也被人們叫做網(wǎng)絡(luò)機器人,顧名思義就

是只需要編寫程序或者一些小腳本來控制爬蟲自動的瀏覽互聯(lián)網(wǎng)并且對想要的

目標進行精準的數(shù)據(jù)的采集。網(wǎng)絡(luò)爬蟲按照系統(tǒng)結(jié)構(gòu)和實現(xiàn)技術(shù),大致可以分

4

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

為以下幾種類型:通用網(wǎng)絡(luò)爬蟲(GeneralPurposeWebCrawler)、聚焦網(wǎng)絡(luò)

爬蟲(FocusedWebCrawler)、增量式網(wǎng)絡(luò)爬蟲(IncrementalWebCrawler)、

深層網(wǎng)絡(luò)爬蟲(DeepWebCrawler)。實際的網(wǎng)絡(luò)爬蟲系統(tǒng)通常是幾種爬蟲技術(shù)

相結(jié)合實現(xiàn)的。

在大家的印象中常常將普通的網(wǎng)絡(luò)爬蟲與黑客混為一談,其實二者之間有

很大的區(qū)別。黑客屬于違反法律肆意竊取個人或者組織內(nèi)有價值的信息以此獲

利,而爬蟲就是一個探測機器,它的基本操作就是模擬人的行為去各個網(wǎng)站溜達,

點點按鈕,查查數(shù)據(jù),或者把看到的信息背回來。簡單來說,它包含三個步驟:

采集信息、數(shù)據(jù)存儲和信息提取。別有用心之人就會利用調(diào)整爬蟲的訪問頻率,

對于被訪問的網(wǎng)站而言會增加其負荷導(dǎo)致網(wǎng)址奔潰。

由此可見,網(wǎng)絡(luò)爬蟲技術(shù)是一把雙刃劍,一個不小心可能就會傷害到自己和

他人,所以我們技術(shù)人員要懂法、守法。在法律允許的范圍內(nèi)去編寫自己的腳本

程序,堅決不能做違法犯罪的行為。

有爬蟲技術(shù),那也一定存在反爬取的技術(shù)了。爬蟲要能夠繞過或者突破人家

的防守機制從而獲取到自己想到要的數(shù)據(jù)。常見的反爬機制有要求你登錄輸入

驗證碼、IP、JS加密、css反爬、或者Ajax異步等手段,這些手段會加大爬取

數(shù)據(jù)的工作量,也會加大網(wǎng)站的開發(fā)成本,所以像一般的小網(wǎng)站最多設(shè)置一個小

反爬,對于我們獲取數(shù)據(jù)來說比較容易。

2.3.2文件存取技術(shù)

Python存儲語句如圖2-1顯示:

圖2-1python存儲語句圖

2.3.3可視化技術(shù)

爬取下來的數(shù)據(jù)通過預(yù)處理、保存為csv文件格式。該數(shù)據(jù)我們能否一眼

就得到我們想要的結(jié)論呢?很顯然是不可能的,一目十行也只是瀏覽,機器不

能根據(jù)特定場景和用戶需求來進行思考我們就需要一種技術(shù),根據(jù)我們獲取到

的龐大數(shù)據(jù)將其通過統(tǒng)計學圖形的方式展現(xiàn)在我們眼前,讓我們對其結(jié)果一目

了然。這個就是數(shù)據(jù)可視化技術(shù)。

可視化技術(shù)使人能夠在三維圖形世界中直接對具有形體的信息進行操作,

5

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

和計算機直接交流。這種技術(shù)已經(jīng)把人和機器的力量以一種直覺而自然的方式

加以統(tǒng)一,這種革命性的變化無疑將極大地提高人們的工作效率。可視化技術(shù)

賦予人們一種仿真的、三維的并且具有實時交互的能力,這樣人們可以在三維

圖形世界中用以前不可想象的手段來獲取信息或發(fā)揮自己創(chuàng)造性的思維。多年

來可視化的技術(shù)也逐漸發(fā)展成為了一下三類:科學可視化、信息可視化、可視

化分析。而我們這里用到的就是信息可視化,信息可視化的處理對象是非結(jié)構(gòu)化、

非幾何的抽象數(shù)據(jù),如金融交易、社交網(wǎng)絡(luò)和文本數(shù)據(jù),其核心挑戰(zhàn)是針對大尺

度高維復(fù)雜數(shù)據(jù)如何減少視覺混淆對信息的干擾。

本次畢業(yè)設(shè)計的數(shù)據(jù)可視化,使用python第三方庫matpoltlab、pyecharts

去進行,兩個庫中包含了許多庫,分別對應(yīng)餅圖、條形圖、直方圖、折線圖等圖

形,可以很好的將數(shù)據(jù)高效率的表現(xiàn)出來。

3下廚房網(wǎng)數(shù)據(jù)采集

3.1采集頁面分析

我們首先通過谷歌瀏覽器搜索下廚房進入首頁,點擊全部分類找到菜式目

錄下查看不同菜品的信息,觀察圖3-1,3-2其中URL為:

/category/*****/,觀察下面兩張圖片可以看出,

點擊不同的菜式網(wǎng)址也在變化。

圖3-1下廚房網(wǎng)址頁面1圖

6

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

圖3-2下廚房網(wǎng)址頁面2圖

點擊鼠標右鍵選擇檢查,跳出開發(fā)者工具頁面,如圖3-3所示。

圖3-3分析網(wǎng)頁頁面圖

切換至網(wǎng)絡(luò)面板(Network),刷新一下頁面,點擊“400076/”資源里的,

Headers標簽,可以看到它的請求類型是GET,所以我們可以根據(jù)以上特點通過

Requests方法發(fā)送請求來獲得響應(yīng)的數(shù)據(jù),指定編碼后就可以獲取網(wǎng)頁信息,

如3-4所示。接著往下翻就可以找到爬取時需要使用的User-Agent,如3-5所

示。

7

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

圖3-4分析網(wǎng)頁Headers請求頁面圖

圖3-5User-Agent圖

3.2字段分析

8

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

點擊開發(fā)者工具界面上方的數(shù)據(jù)預(yù)覽Preview按鈕,如圖3-6,可以看到我

們需要的所有的數(shù)據(jù)信息都是呈現(xiàn)json格式傳遞在這個網(wǎng)頁面,所以我們只要

重復(fù)獲取響應(yīng)然后把數(shù)據(jù)依次寫入到csv格式的文件當中就好了。

圖3-6分析數(shù)據(jù)xpath信息頁面圖

點擊需要獲取的數(shù)據(jù)內(nèi)容,比方說要獲取菜名,利用開發(fā)者模式定位到菜名

字段的位置,右擊元素面板對應(yīng)的元素選擇copy,就可以復(fù)制菜名對應(yīng)的xpath

信息,如圖3-6,可以重復(fù)以上操作獲取其他字段的xpath信息。

圖3-7分析數(shù)據(jù)xpath信息頁面圖

9

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

3.3編程實現(xiàn)

3.3.1導(dǎo)入所需庫

自行下載導(dǎo)入進行網(wǎng)頁數(shù)據(jù)爬取以及存儲會用到的庫,如下代碼所示。

圖3-8導(dǎo)入庫圖

3.3.2頁面解析

創(chuàng)建一個空列表用來存放代表不同菜式的數(shù)字,遍歷該列表,利用for循

環(huán)來實現(xiàn)獲取不同菜式網(wǎng)頁的內(nèi)容,通過觀察不同頁面的url可以看出

category/{}代表不同的菜式,page{}代表不同頁數(shù)的頁面,利用format函數(shù)

改變數(shù)字來實現(xiàn)自動切換菜式和翻頁的效果,這里我們每個菜系爬取25頁。獲

取url后我們利用requests對網(wǎng)頁發(fā)起請求,使用lxml對獲取到的內(nèi)容進行

解析,解析成功后使用xpath語句對需要的字段內(nèi)容進行爬取。

圖3-9頁面解析圖

3.3.3數(shù)據(jù)獲取

遍歷lis列表獲取每一個菜品的信息。獲取下面分析所需要的字段,['菜

名','菜品鏈接','用料','評分','7天內(nèi)做過的人數(shù)','作者','菜系']。菜品鏈

接我們需要拼接一下公共部分,后期在文件里面存儲的鏈接就可以直接打開。

在對用料這個字段的數(shù)據(jù)進行爬取時存儲顯示不完整,所以在這里使用join函

數(shù)把單個原料整合在一起,如['奶油奶酪','藍莓','茴香']這個列表的元素在

經(jīng)過整合之后就變成了['奶油奶酪,藍莓,茴香']。在爬取7天內(nèi)做過人數(shù)的字

段時有一些新更新的菜品因為還沒有人做過會影響存儲,所以我們加入判斷如

10

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

果爬取列表為空添加元素為0。對于菜系字段我們封裝了一個choose函數(shù)通過

不同的編碼來判斷是哪種菜系。

圖3-10數(shù)據(jù)獲取圖

3.3.4網(wǎng)頁數(shù)據(jù)存儲

獲取完所用字段之后,使用zip函數(shù)把所有的菜品名稱、鏈接、用料、評

分、做菜人數(shù)、作者以及菜系進行整合。每循環(huán)一次就把整合好的數(shù)據(jù)存儲在

定義好的列表中,最后利用pandas庫的功能存儲成csv文件,指定編碼

utf-8_sig。

代碼如下:

圖3-11數(shù)據(jù)存儲圖

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

獲得所需的數(shù)據(jù)之后,為了方便下一步繪圖我們需要對數(shù)據(jù)進行預(yù)處理,數(shù)

據(jù)清洗是對數(shù)據(jù)進行重新審查和校驗的過程,目的在于刪除重復(fù)信息、糾正存

在的錯誤,或者是重新生成便于后續(xù)可視化的字段,還要保證數(shù)據(jù)的一致性,不

僅如此,我們需要將數(shù)據(jù)進行重新排序使數(shù)據(jù)有序化,這樣子在開發(fā)人員對數(shù)據(jù)

信息的調(diào)用和共享過程中都很方便。下面我們需要將爬下來的數(shù)據(jù)和網(wǎng)頁原數(shù)

據(jù)進行比對,并且檢查是否出現(xiàn)空值、錯值,還有數(shù)據(jù)的位置是否正確。根據(jù)不

同的需求我們要對數(shù)據(jù)進行不同的處理。

11

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

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

在本畢業(yè)設(shè)計中我們主要是把無用列進行刪除,再檢查一下后續(xù)可視化需

要用到的字段有無重復(fù)、錯誤和缺失,如菜名、用料等字段,同時還要注意字

段的類型。

4.1.1數(shù)據(jù)預(yù)覽

圖4-1數(shù)據(jù)預(yù)覽圖

導(dǎo)入兩個庫顯示部分數(shù)據(jù),我們把后續(xù)分析用不到的菜品鏈接這一列刪除。

圖4-2刪除無用列圖

12

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

4.1.2菜名重復(fù)數(shù)據(jù)去除

我們把關(guān)于菜名字段重復(fù)的數(shù)據(jù)行進行刪除。

圖4-3重復(fù)數(shù)據(jù)去除圖

4.1.3無效值、缺失值處理

下廚房評分滿分為10,然而通過觀察評分我們可以看出存在數(shù)據(jù)大于10以

上的字段,為了后面便于分析,我們用replace來把評分大于10和等于0的數(shù)

據(jù)統(tǒng)一替換成空值進行下一步處理。

圖4-4無效值處理圖

13

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

經(jīng)過檢查,發(fā)現(xiàn)數(shù)據(jù)除了剛剛置空的評分字段還有用料這一列存在缺失,那

么我們把存在空值的數(shù)據(jù)行進去除。

圖4-5缺失值數(shù)據(jù)行去除圖

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

剩下需要的數(shù)據(jù),重新排序整理后以原網(wǎng)頁格式存入data_zhp.csv文件中,

留存后續(xù)作為數(shù)據(jù)分析可視化使用。數(shù)據(jù)儲存的方法有很多種,如果需要儲存較

大的數(shù)據(jù)信息就需要用數(shù)據(jù)庫,數(shù)據(jù)庫使用的sql語句在頻繁的數(shù)據(jù)修改和統(tǒng)

計計算方面表現(xiàn)都很優(yōu)秀?;蛘咭部梢灾苯佑糜浭卤靖袷絻Υ妫╰xt),其他文

件的形式儲存csv、excel、json等,為了方便讀取且本次爬取的數(shù)據(jù)較少,所

以我們選擇保存在csv就好了。

如圖4-6所示:

圖4-6數(shù)據(jù)存儲為csv文件圖

14

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

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

5.1數(shù)據(jù)準備

導(dǎo)入相關(guān)庫,使用python加載源數(shù)據(jù),如圖5-1、5-2。

圖5-1數(shù)據(jù)加載頁面圖

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

15

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

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

5.2.1各菜系菜譜數(shù)量占比餅圖

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

按照文件中菜系的字段將數(shù)據(jù)進行匯總和降序處理如圖5-3中可以看出家

常菜數(shù)量占比最高,其次就是快手菜。說明菜譜還是多以生活中來并且貼近生活,

大家更加喜歡去分享平時自己喜歡且更容易接觸到的菜譜。而相對于下酒菜來

說受眾群體相對較小菜譜數(shù)量也少。快手菜數(shù)量占比僅次于家常菜,說明短視

頻用戶基數(shù)大,用來推廣菜式菜品更為高效。創(chuàng)新占比排名第三。綜上,對于

美食網(wǎng)站而言,菜式內(nèi)容要更為大眾化,新潮化。

16

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

5.2.2最受歡迎的十二道菜折線圖

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

根據(jù)字段7天內(nèi)做過的人數(shù)繪制圖5-4,中可以看出來7內(nèi)天最受歡迎的十

二道菜,該圖可以從一周做過的人數(shù)多少來分析出最近一周的熱門菜譜有哪些,

讓大家緊跟熱點,買菜的時候可以有所參考。通過分析該菜品不難發(fā)現(xiàn)菜名中

帶有‘酸辣’等字眼,天氣逐漸炎熱大家更喜歡比較開胃的菜品。

17

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

5.2.3菜譜評分分布玫瑰圖

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

下廚房網(wǎng)菜譜實行10分制,從圖5-5可以看出菜品的評分占比分布不勻,

說明該評分可信度較高。獲得8到9分菜品數(shù)占總菜品數(shù)的百分之三十左右,

說明該網(wǎng)站上的菜品能得到半數(shù)以上用戶的好評,百分之四十五的用戶給了7

分以下的評價,這么看來許多菜品還是有進步的空間。只有接近百分之十一的

菜品獲得了比較高的評價算得上“鎮(zhèn)站之寶”的菜品了??傮w來說下廚房好評

還是占半數(shù)的,可以看出下廚房還是得到了大家的認可。產(chǎn)品更新?lián)Q代經(jīng)歷淘

汰才能跟上人們?nèi)找嬖鲩L的需求,菜品也是一樣,網(wǎng)站要給出激勵用戶發(fā)布有

質(zhì)量的菜式,也要同時吸引更多新用戶來做菜進行評分,對于評分高的菜譜發(fā)

布作者可以適當鼓勵,這樣網(wǎng)站才能有活力長久的運營下去。

18

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

5.2.4作者發(fā)布菜品數(shù)量及平均分柱狀圖

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

該圖匯總了發(fā)布菜品數(shù)量前十的作者以及他們發(fā)布菜品評價的平均分,并

且按照評價平均分降序進行排序。從圖中可以看出作品數(shù)量占大頭的分別是一

顆糖572196和古典美人美食,廚房筆記-fang跟在其后,其余的作者數(shù)量就都

較為一般了,然而數(shù)量不能決定什么,菜品評價高才是王道。作品數(shù)量較多的

作者一般對食物有更多的接觸,對美食有更多的了解也樂于分享,但是對于一

個美食網(wǎng)站來說既要有足夠菜式數(shù)量能滿足各類人群的需求,也要保證其菜品

的質(zhì)量才能有穩(wěn)定的用戶群體。對于琳瑯滿目的菜品害怕容易失敗口味不好的

用戶不如關(guān)注圖中菜品評價較高的作者,參考他的菜譜更快做出自己想要的美

食。

19

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

5.2.5用料詞云圖

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

中國菜講究色香味,想要做出佳肴如何用料也有講究。如圖5-7所示,字

體越大的字段說明在菜譜中用的越多,如鹽、耗油、生抽這些用料。用戶可以

根據(jù)用料詞云圖來填充家中的廚房。

5.3綜述

本畢業(yè)設(shè)計通過xpath對下廚房網(wǎng)站數(shù)據(jù)進行爬取,我們得到了菜品種類

和評分等數(shù)據(jù),通過刪除不需要的列,查看評分字段對無效值和缺失值進行處理

之后,可視化這些數(shù)

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論