基于Python的美食天下網(wǎng)數(shù)據(jù)采集與分析_第1頁(yè)
基于Python的美食天下網(wǎng)數(shù)據(jù)采集與分析_第2頁(yè)
基于Python的美食天下網(wǎng)數(shù)據(jù)采集與分析_第3頁(yè)
基于Python的美食天下網(wǎng)數(shù)據(jù)采集與分析_第4頁(yè)
基于Python的美食天下網(wǎng)數(shù)據(jù)采集與分析_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

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

目錄

.

1引言1

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

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

1.2.1Python簡(jiǎn)介1

1.2.2Jypyternotebook簡(jiǎn)介2

1.2.3Python第三方庫(kù)簡(jiǎn)介2

2需求分析3

2.1可行性需求分析3

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

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

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

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

2.3.3可視化技術(shù)4

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

3.1采集頁(yè)面分析5

3.2字段分析6

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

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

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

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

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

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

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

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

5.2.1依據(jù)美食口味進(jìn)行統(tǒng)計(jì)分析15

I

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

5.2.2依據(jù)使用廚具進(jìn)行統(tǒng)計(jì)分析16

5.2.3依據(jù)工藝類別進(jìn)行統(tǒng)計(jì)分析16

5.2.4依據(jù)制作時(shí)間進(jìn)行統(tǒng)計(jì)分析17

5.2.5依據(jù)所屬類別進(jìn)行統(tǒng)計(jì)分析18

5.3綜述19

6小結(jié)19

參考資料21

II

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

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

1引言

當(dāng)今世界中屬于大數(shù)據(jù)的時(shí)代已經(jīng)到來(lái),運(yùn)用計(jì)算機(jī)進(jìn)行網(wǎng)絡(luò)爬蟲(chóng)技術(shù)已

成為這個(gè)時(shí)代中不可或缺的一項(xiàng)重要技術(shù),比如需要用到數(shù)據(jù)來(lái)分析用戶的某

種行為或者某些產(chǎn)品的優(yōu)缺點(diǎn)信息等等,而這一切的首要條件就是數(shù)據(jù)采集技

術(shù)的實(shí)現(xiàn)。當(dāng)今互聯(lián)網(wǎng)社會(huì)中,數(shù)據(jù)就可以說(shuō)就是無(wú)價(jià)之寶,誰(shuí)擁有大量有用

的數(shù)據(jù)信息,誰(shuí)就擁有了對(duì)某一事務(wù)決策的主動(dòng)權(quán),就會(huì)有更多選擇方向。那

么怎樣有效地采集并且利用這些有用的信息成為了一個(gè)巨大的挑戰(zhàn),而網(wǎng)絡(luò)爬

蟲(chóng)技術(shù)就是采集數(shù)據(jù)的有效方法,它可以很好的幫我們解決。它是按照操作者

給予一定的規(guī)則,從而自動(dòng)在網(wǎng)絡(luò)當(dāng)中獲得海量信息,可以說(shuō)是一種的程序,

也可以是一種腳本。

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

美食,是可以吃下去的幸福記憶,是很多人都喜歡的東西,那么美食的聚

集地在哪呢?最簡(jiǎn)單的當(dāng)然是美食網(wǎng)站,這可算是一大福地了。一個(gè)好的美食

網(wǎng)站,除了包羅萬(wàn)象的美味美食之外,還必須具備其它重要信息,如作法步驟,

使用工具,制作方式等等。涉及的信息很多,小小的手指怎么可能點(diǎn)的過(guò)來(lái)呢,

點(diǎn)來(lái)點(diǎn)去是不是太麻煩了?因此我們就需要用到python爬蟲(chóng)技術(shù)對(duì)網(wǎng)站進(jìn)行

分析,獲取我們想要的信息,把美食們都“收入囊中”。

我的畢業(yè)設(shè)計(jì)就是針對(duì)“美食天下”網(wǎng)站中的“菜譜首頁(yè)”菜單進(jìn)行各個(gè)

美食的概要信息和簡(jiǎn)單的數(shù)據(jù)分析,把原本繁雜的數(shù)據(jù)經(jīng)過(guò)清洗加以分析呈現(xiàn)

出來(lái),達(dá)到化繁為簡(jiǎn)、一目了然的效果。

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

1.2.1Python簡(jiǎn)介

Python是一種解釋型、通用的高級(jí)編程語(yǔ)言。不僅提供高效的高級(jí)數(shù)據(jù)結(jié)

構(gòu),而且它還能簡(jiǎn)單有效地面向?qū)ο缶幊蹋慕忉屍饕子跀U(kuò)展。其本身就提

供了適用于各個(gè)主要系統(tǒng)平臺(tái)的源碼碼或機(jī)器碼。更主要的是它的語(yǔ)法和動(dòng)態(tài)

類型,以及解釋型語(yǔ)言的本質(zhì),使它成為多數(shù)平臺(tái)上寫(xiě)腳本和快速開(kāi)發(fā)應(yīng)用的

1

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

編程語(yǔ)言。

在編程語(yǔ)言排行榜中,Python的排名已經(jīng)與老牌的C語(yǔ)言和JAVA語(yǔ)言不相

上下,它也逐漸走進(jìn)非IT行業(yè)工作者的視野內(nèi)?,F(xiàn)如今,人們用它開(kāi)發(fā)簡(jiǎn)單的小

腳本用來(lái)做文件的自動(dòng)化處理或者開(kāi)發(fā)一些小網(wǎng)站打發(fā)無(wú)聊時(shí)光。這也突出

Python的特點(diǎn)就是易學(xué)、第三方庫(kù)足夠豐富、并且免費(fèi)開(kāi)源、支持跨多平臺(tái)且

可移植性比較強(qiáng)。

1.2.2Jypyternotebook簡(jiǎn)介

jupyternotebook是一種Web應(yīng)用,是基于網(wǎng)頁(yè)的用于交互計(jì)算的應(yīng)用

程序,能讓用戶將數(shù)學(xué)方程、代碼和可視化內(nèi)容、說(shuō)明文本全部組合到一個(gè)易

于共享的文檔中,非常方便教學(xué)和研究。

它可以直接通過(guò)瀏覽器運(yùn)行代碼,并同時(shí)顯示運(yùn)行結(jié)果在代碼塊下方,還

擁有語(yǔ)法高亮、縮進(jìn)等功能。擁有富媒體格式的展示計(jì)算,而且jupyter

notebook支持使用LATEX編寫(xiě)數(shù)學(xué)性說(shuō)明。

1.2.3Python第三方庫(kù)簡(jiǎn)介

requests:是一個(gè)對(duì)用戶很友好的網(wǎng)絡(luò)爬蟲(chóng)功能庫(kù),是實(shí)現(xiàn)簡(jiǎn)單易用的

http庫(kù),非常容易操作,在使用前要先進(jìn)行安裝。

BeautifulSoup:可以對(duì)HTML、XML格式進(jìn)行解析,從中提取到我們需要的

相關(guān)信息;還可以對(duì)所提供的任何格式進(jìn)行相關(guān)的數(shù)據(jù)爬取,而且對(duì)它進(jìn)行樹(shù)

形解析。

pandas:數(shù)據(jù)分析并保存為csv文件,它屬于python數(shù)據(jù)分析高層次應(yīng)用

庫(kù),還可以用于進(jìn)行相關(guān)的數(shù)據(jù)清洗。

matplotlib:一個(gè)繪圖庫(kù),主要是偏向于二維繪圖包括條形圖、扇形圖、

散點(diǎn)圖、直方圖等等。

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

csv表格中。并且csv文件是表格和數(shù)據(jù)庫(kù)中常見(jiàn)的文件操作格式。

pyecharts:常用于生成圖表的庫(kù)。

wordcloud:生成中文詞云。

pyplot:常用的繪圖模塊,能很方便的繪制2D圖表。

Webdriver:它是用于web應(yīng)用程序的自動(dòng)化測(cè)試工具,容易被操作者使用

和理解,其可維護(hù)、可讀寫(xiě)性很高。而且它不依賴于任何測(cè)試框架,作用起來(lái)特

別方便且容易操作。

2

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

2需求分析

2.1可行性需求分析

1.技術(shù)可行性

Python是面對(duì)對(duì)象的語(yǔ)言,通俗易懂,這讓它對(duì)于爬蟲(chóng)領(lǐng)域有著巨大的優(yōu)

勢(shì)。本項(xiàng)目便是利用python采集數(shù)據(jù),通過(guò)python中的第三方庫(kù)進(jìn)行數(shù)據(jù)分

析、然后再進(jìn)行數(shù)據(jù)清洗預(yù)處理操作、及最后的數(shù)據(jù)可視化的展示出來(lái),將爬

取的原始數(shù)據(jù)暫時(shí)以csv格式的文件存儲(chǔ)起來(lái),后續(xù)利用時(shí)可對(duì)其進(jìn)行調(diào)用。

2.項(xiàng)目可行性

品嘗美食是一種享受,它總在迥然不同的民族和文化間扮演著親善大使,

靜默的歲月中,彼此滲透。每一個(gè)制造和享用美食的人,無(wú)不歷經(jīng)江湖夜雨,

期待桃李春風(fēng)。

本畢業(yè)設(shè)計(jì)通過(guò)采集美食網(wǎng)站的數(shù)據(jù),分析美食信息。我們將從美食的制

作者、制作方式、制作用具等方面對(duì)其進(jìn)行深度剖析、分析出有價(jià)值的信息,

將最后的結(jié)果呈現(xiàn)在大家眼前,到最后把“美食”真正的“共享”出來(lái),分析

美食與我們之間的關(guān)系。

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

此次項(xiàng)目的數(shù)據(jù)集來(lái)源于“美食天下”網(wǎng),是通過(guò)python爬取其“菜譜首

頁(yè)”菜單中部分信息。數(shù)據(jù)清洗后共得到896條有效記錄,并盡可能保證數(shù)據(jù)

可靠性。

本次爬取“美食天下”網(wǎng),主要獲得了以下信息:美食名、上傳用戶名、

口味、工藝類別、耗時(shí)、使用廚具、所屬類別、主料、輔料、調(diào)料、做法步驟。

主要目的是通過(guò)實(shí)際數(shù)據(jù)來(lái)分析每一個(gè)美食在制作時(shí)前后相關(guān)的信息,讓它們

簡(jiǎn)潔明了的呈現(xiàn)出來(lái)。例如,食中用到同一種廚具的有多少、它們的類別又是

什么,制作美食所需要的材料及其用量各是多少,再者美食的制作步驟是什么

等等。

以此來(lái)探究大家更喜歡哪類美食、做美食的工具哪種更受大家喜歡、大家

更喜歡美食制作時(shí)間長(zhǎng)的還是時(shí)間短等一系列問(wèn)題。

3

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

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

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

網(wǎng)絡(luò)爬蟲(chóng)一般也被稱為網(wǎng)絡(luò)機(jī)器人,它可以代替人類手工,利用程序或腳

本來(lái)自動(dòng)穿梭互聯(lián)網(wǎng),并進(jìn)行數(shù)據(jù)信息的采集。把我們?nèi)粘J褂玫木W(wǎng)絡(luò)比作成

一個(gè)蜘蛛網(wǎng),那么網(wǎng)絡(luò)爬蟲(chóng)就是在這個(gè)網(wǎng)上爬行的蜘蛛。網(wǎng)絡(luò)蜘蛛是通過(guò)網(wǎng)頁(yè)

的鏈接地址來(lái)尋找網(wǎng)頁(yè),從網(wǎng)站某一個(gè)頁(yè)面開(kāi)始,一般是網(wǎng)站的首頁(yè),爬蟲(chóng)讀

取網(wǎng)頁(yè)中的內(nèi)容并分析,找出在網(wǎng)頁(yè)中的其它鏈接,然后在這些鏈接地址中得

到想要的信息再去尋找下一個(gè)網(wǎng)頁(yè),如此循環(huán),直到把網(wǎng)站中所有的網(wǎng)頁(yè)都爬

取完為止。

網(wǎng)絡(luò)爬蟲(chóng)為搜索引擎從網(wǎng)址上下載網(wǎng)頁(yè),是搜索引擎重要組成部分。一般

來(lái)講,它是從一個(gè)或若干初始網(wǎng)頁(yè)的URL開(kāi)始,獲得初始網(wǎng)頁(yè)上的URL,分析并

得到網(wǎng)頁(yè)中的數(shù)據(jù)鏈接(超鏈接),在抓取網(wǎng)頁(yè)的過(guò)程中,不斷從當(dāng)前網(wǎng)址里

找到新的鏈接或者是url放入列表中,直到操作者給定的任務(wù)。

2.3.2文件存取技術(shù)

Python內(nèi)置csv模塊存儲(chǔ)技術(shù)如圖2-1:

圖2-1python內(nèi)置csv模塊存儲(chǔ)圖

Python內(nèi)置pandas模存儲(chǔ)技術(shù)如圖2-2:

圖2-2python內(nèi)置pandas模塊圖

2.3.3可視化技術(shù)

數(shù)據(jù)可視化技術(shù)是關(guān)于數(shù)據(jù)視覺(jué)表現(xiàn)形式的科學(xué)技術(shù)研究,是一種以某種

概要形式抽提出來(lái)的信息,包括相應(yīng)信息單位的各種屬性和變量。它可以增強(qiáng)

數(shù)據(jù)的呈現(xiàn)效果,方便用戶更直觀的觀察數(shù)據(jù),能幫助發(fā)現(xiàn)數(shù)據(jù)中更多難以發(fā)

掘的信息,可視化技術(shù)的應(yīng)用領(lǐng)域十分廣泛。

本畢業(yè)設(shè)計(jì)中將得到的數(shù)據(jù)用簡(jiǎn)單的可視化手段實(shí)現(xiàn)數(shù)據(jù)可視化,利用

python的第三方庫(kù)matpoltlab及pyecharts去進(jìn)行可視化,matplotlab中包

4

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

含了多種庫(kù),如條形圖、拆線圖、餅圖等,可以很直觀的將數(shù)據(jù)結(jié)果表現(xiàn)出來(lái)。

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

3.1采集頁(yè)面分析

瀏覽器中查找“美食天下”,進(jìn)入網(wǎng)站后點(diǎn)擊“菜譜”菜單,觀察圖3-1,

其中URL為:/recipe.html;如圖3-1所示該網(wǎng)

頁(yè)沒(méi)有分頁(yè)按鈕,是下滑滾動(dòng)條式的網(wǎng)頁(yè),不斷點(diǎn)擊“查看更多”,頁(yè)面下方美

食數(shù)據(jù)增加,URL地址始終為同一個(gè),我們始終在這個(gè)頁(yè)面。這一步我們只要得

到美食數(shù)據(jù)量即可。

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

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

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

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

段,發(fā)現(xiàn)這個(gè)一個(gè)GET請(qǐng)示,在這里我們?cè)诰W(wǎng)頁(yè)中找到“User-Agent”,用于

5

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

后面爬取數(shù)據(jù)做的“偽裝”,如圖3-3。

圖3-3User-Agent圖

3.2字段分析

利用開(kāi)發(fā)工具定位到我們所需要爬取的美食上,如圖3-4,可以看到它們的

url沒(méi)有規(guī)律,且都跟隨一個(gè)用戶頁(yè)面的url。要想得到美食信息數(shù)據(jù)就得進(jìn)入

它們各自的url爬取,因此編寫(xiě)代碼得到該頁(yè)面的所有url,篩選出用戶url,

控制并準(zhǔn)確的進(jìn)入到美食信息頁(yè)面。

圖3-4分析數(shù)據(jù)頁(yè)面圖

如圖3-5與圖3-6所示,得到進(jìn)入美食URL后,我們的目的是得到該美食

的“美食名”、“上傳用戶名”、“口味”、“工藝類別”、“耗時(shí)”、“使

6

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

用廚具”、“所屬類別”、“主料”、“輔料”、“調(diào)料”、“做法步驟”相

關(guān)信息,最后利用爬蟲(chóng)技術(shù)存儲(chǔ)到CSV文件中。

圖3-5分析數(shù)據(jù)頁(yè)面

圖3-6分析數(shù)據(jù)頁(yè)面圖

7

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

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

導(dǎo)入所需庫(kù)

圖3-5導(dǎo)入所需庫(kù)頁(yè)面圖

設(shè)置請(qǐng)求頭,偽裝成瀏覽器訪問(wèn)服務(wù)器,逐個(gè)訪問(wèn)。

圖3-6請(qǐng)求頭內(nèi)容頁(yè)面圖

因?yàn)榫W(wǎng)頁(yè)是下滑條式的動(dòng)態(tài)頁(yè)面,只有頁(yè)面不斷往下拉,不斷“查看更

多”,美食數(shù)據(jù)才會(huì)不斷增加。所以我們要先找到“查找更多”按鈕,再設(shè)置

頁(yè)面不斷往下拉,以此循環(huán),當(dāng)數(shù)據(jù)量達(dá)到要求時(shí)停止,不必一直拉,頁(yè)面沒(méi)

有盡頭。

圖3-7刷新數(shù)據(jù)代碼圖

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

fromseleniumimportwebdriver

frommon.byimportBy

importrequests

importtime

importcsv

8

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

frombs4importBeautifulSoup

driver=webdriver.Edge()

driver.get('/recipe.html')

driver.maximize_window()

driver.execute_script("window.scrollTo(0,document.body.scrollHeight)")

read_mores=driver.find_element(By.XPATH,'//*[@id="recipeindex_living_loading"]/a')

read_mores.click()

driver.execute_script('window.scrollBy(0,170)')

foriinrange(0,27):

driver.execute_script('window.scrollBy(0,130)')

time.sleep(2)

read_mores=driver.find_element(By.XPATH,'//*[@id="recipeindex_living_loading"]/a')

read_mores.click()

time.sleep(1)

html=driver.page_source

soup=BeautifulSoup(html,'html.parser')

Rookie=soup.find('ul',class_='on')

tags=Rookie.find_all('a')

Url_list=[]

fortagintags:

url=str(tag.get('href')).strip()

Url_list.append(url)

driver.quit()

Dish_name=[]

usename=[]

User_name=[]

Flavor=[]

Workmanship=[]

Time_consuming=[]

Kitchenware2=[]

Kitchenware=[]

Classification=[]

Food_ingredients=[]

Food_ingredients2=[]

Main_material=[]

a=[]

a2=[]

Accessories=[]

b=[]

b2=[]

Seasoning=[]

c=[]

9

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

c2=[]

Step=[]

z=[]

foriinrange(0,len(Url_list),2):

ua={

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

(KHTML,likeGecko)Chrome/Safari/537.36Edg/108.0.1462.42'

}

html=requests.get(url=Url_list[i],headers=ua)

soup=BeautifulSoup(html.content,'html.parser')

name=soup.find('h1',class_='recipe_De_title')

name=name.find('a')

Dish_name.append(name.get_text())

username=soup.find('span',class_='userName')

usename.append(username)

User_name.append(username.get_text())

flavor=soup.find('div',class_='recipeCategory_sub_Rmt30clear')

flavor2=flavor.find_all('a')

Flavor.append(flavor2[0].string)

Workmanship.append(flavor2[1].string)

Time_consuming.append(flavor2[2].string)

kitchenware=soup.find_all('div',class_='recipeTipmt16')[1]

Kitchenware2.append(kitchenware.get_text())

foriinKitchenware2:

z=str()

forjini[12:-2]:

ifj=='\n':

break

else:

z+=j

Kitchenware.append(z)

iflen(Classification)==896:

continue

else:

classification2=(soup.find_all('div',class_='recipeTipmt16')[2]).find('a').string

Classification.append(classification2)

Main=soup.find_all(class_='particulars')

foriinrange(0,len(Main)):

10

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

ifMain[i].find('legend').get_text()=='主料':

Main_material2=Main[i].find('ul').get_text()

a.append(Main_material2)

elifMain[i].find('legend').get_text()=='輔料':

Accessories2=Main[i].find('ul').get_text()

b.append(Accessories2)

else:

Seasoning2=Main[i].find('ul').get_text()

c.append(Seasoning2)

whilelen(a)!=len(b)orlen(a)!=len(c)orlen(b)!=len(c):

x=len(a)

y=len(b)

w=len(c)

num=[x,y,w]

num.sort()

ifnum[0]==x:

a.append('無(wú)')

elifnum[0]==y:

b.append('無(wú)')

else:c.append('無(wú)')

step=soup.find('div',class_='recipeStep')

str1=str()

word=step.find('ul')

word3=word.find_all('div',class_='recipeStep_word')

foriinrange(0,len(word3)):

str1+=word3[i].get_text()

Step.append(str1)

foriina:

a2.append(i.replace('\n',''))

foriinb:

b2.append(i.replace('\n',''))

foriinc:

c2.append(i.replace('\n',''))

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

writer=csv.writer(file,lineterminator="\n")

writer.writerow(['美食名','上傳用戶名','口味','工藝類別','耗時(shí)','使用廚具','所屬類別','主料','

輔料','調(diào)料','做法步驟'])

11

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

writer.writerows(zip(Dish_name,User_name,Flavor,Workmanship,Time_consuming,Kitchenware

,Classification,a2,b2,c2,Step))

file.close()

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

得到龐大的數(shù)據(jù)后,我們就需要對(duì)數(shù)據(jù)進(jìn)行預(yù)處理操作,確保爬到的數(shù)據(jù)

里面沒(méi)有無(wú)效值、錯(cuò)誤值、空值,要保證數(shù)據(jù)的一致性。數(shù)據(jù)清洗技術(shù)的實(shí)施,

能夠確保得到的數(shù)據(jù)保持一致并沒(méi)有過(guò)多的錯(cuò)誤,方便更好的進(jìn)行數(shù)據(jù)分析。

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

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

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

效數(shù)據(jù)統(tǒng)一規(guī)劃,去掉不要的行或列,防止數(shù)據(jù)冗余。得到新的數(shù)據(jù)重新儲(chǔ)存,

留存后續(xù)分析、可視化使用。

如數(shù)據(jù)中的“上傳用戶名”我們做分析時(shí)不需要,因此去掉。如圖4-2。

圖4-2清洗后的數(shù)據(jù)圖

12

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

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

Python常用的五種數(shù)據(jù)存儲(chǔ)方式:

Json格式:該種格式可以進(jìn)行數(shù)據(jù)間的交換,對(duì)數(shù)據(jù)的表示是使用的是獨(dú)

立的編程語(yǔ)言,對(duì)數(shù)據(jù)存儲(chǔ)采用的文本格式。層次清晰,可以方便閱讀和理解,

同時(shí)還可以讓Python解釋器對(duì)文件進(jìn)行解釋和生成,有效的提高了開(kāi)發(fā)傳輸?shù)?/p>

效率。

Csv格式:這類文件與平時(shí)使用的excel文件相似,將數(shù)據(jù)儲(chǔ)存為該格式的

話,可以直接在系統(tǒng)磁盤中找到對(duì)應(yīng)保存文件進(jìn)行瀏覽,方便再次查看數(shù)據(jù)。

Mysql數(shù)據(jù)庫(kù):這是用的最多的一種方式。這種方式存儲(chǔ)數(shù)據(jù)可以直接對(duì)數(shù)

據(jù)進(jìn)行處理,實(shí)現(xiàn)數(shù)據(jù)的增刪改查。

Redis數(shù)據(jù)庫(kù):這種數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)存儲(chǔ)會(huì)比較方便快速,不過(guò)通常在使用過(guò)

程中我們要對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)換,把數(shù)據(jù)轉(zhuǎn)換為字符串,然后再進(jìn)行操作。

Mongdb數(shù)據(jù)庫(kù):這類數(shù)據(jù)庫(kù)最大的優(yōu)點(diǎn)就是對(duì)數(shù)據(jù)結(jié)構(gòu)要求不是特別高,

就是在數(shù)據(jù)的提取時(shí)要進(jìn)行數(shù)據(jù)整理,不然到后面數(shù)據(jù)會(huì)比較亂。

這里項(xiàng)目用csv的文件格式保存清洗后的數(shù)據(jù),文件名為data2,用來(lái)儲(chǔ)存

清洗后的數(shù)據(jù),index=false輸出不顯示索引值,編碼方式為utf-8,如圖4-3。

圖4-3數(shù)據(jù)重新存儲(chǔ)圖

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

讀取已經(jīng)清理的數(shù)據(jù)文件。

圖4-4清洗的數(shù)據(jù)圖

13

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

如圖4-4,我們的新數(shù)據(jù)中“上傳用戶名”已經(jīng)被剔除,方便后面我們對(duì)數(shù)

據(jù)進(jìn)行操作。

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

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

利用PyCharm軟件,導(dǎo)入相關(guān)庫(kù),并加載源數(shù)據(jù),如圖5-1、5-2。

圖5-1數(shù)據(jù)準(zhǔn)備頁(yè)面圖

圖5-2數(shù)據(jù)加載頁(yè)面圖

14

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

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

5.2.1依據(jù)美食口味進(jìn)行統(tǒng)計(jì)分析

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

將數(shù)據(jù)“口味”字段數(shù)據(jù)匯總,生成字典數(shù)據(jù),按照詞頻生成詞云,如圖5-3

中可以看出在飲食中,大家對(duì)美食的口味更傾向于“咸鮮”。而“清淡”與“原

味”居于其后,也都是很受大家喜歡的口味。這種現(xiàn)象可能與這幾年的中國(guó)人

幾乎發(fā)展為無(wú)辣不歡的地步有關(guān)系,更多的人開(kāi)始偏向“零添加”的食品,比

起以往中國(guó)的大眾口味,各式的調(diào)料香味,現(xiàn)在的人可能更喜歡食材的原汁原

味,要的就是一個(gè)“鮮”。目前中國(guó)本土很多美食店都在做“鮮食”,將“食

材”作為他們的賣點(diǎn)?!俺允巢摹睍r(shí)代悄然來(lái)臨,大家更喜歡天然的味道,近

些年中國(guó)人的神經(jīng)已經(jīng)被食品安全問(wèn)題折磨的脆弱不堪。問(wèn)題的本身就是大家

想保持身體健康,但光吃“食材”是不夠的,我們還要配上“五谷”。這可能

會(huì)是未來(lái)食品的發(fā)展趨勢(shì),要以五谷為主。為什么呢?近幾年出現(xiàn)出現(xiàn)的一系

列的“現(xiàn)代病”,大家逐漸意志到谷物對(duì)我們?nèi)梭w營(yíng)養(yǎng)結(jié)構(gòu)的重要性,谷物類

食品對(duì)人體的好處實(shí)在太多。如蒙牛推出了含有谷物的酸奶產(chǎn)品,很受大家喜

歡,銷售非?;稹V筮€推了“真谷粒”系列,多種口味,銷量非常不錯(cuò)。

15

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

5.2.2依據(jù)使用廚具進(jìn)行統(tǒng)計(jì)分析

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

從圖5-4條形圖中可以看出大家制作美食使用的工具更多的是家常用的

“炒鍋”,次數(shù)遠(yuǎn)遠(yuǎn)要高于其它工具?!俺村仭弊鳛樽畛S玫拇毒撸诔床?/p>

時(shí)溶解出來(lái)的少量鐵元素,這是可以直接被人體吸引利用的,對(duì)我們的健康也

是有益的,而且“炒鍋“使用起來(lái)也是相當(dāng)方便,它在第一也是非常正常的現(xiàn)

象。其次受歡迎的是“煮鍋”,也是很容易使用的工具,它可以完成生活中大

部分的烹飪事務(wù),對(duì)口味比較愛(ài)“鮮”的人來(lái)說(shuō),這可能是廚房必備的了。在

廚房里,不銹鋼廚具制品各類繁多,占很大比例(炒鍋、煮鍋)。而在這些廚

具產(chǎn)業(yè)中,我們大家熟悉廚具品牌如蘇泊爾、愛(ài)任達(dá)等,這些在廚具領(lǐng)域也只

處于中高端,市場(chǎng)品牌占有率還是比較低,國(guó)內(nèi)還是缺少有較大影響力的品牌。

隨著廚具市場(chǎng)競(jìng)爭(zhēng)的不斷加劇,消費(fèi)者們的品牌意識(shí)逐漸增強(qiáng),國(guó)內(nèi)對(duì)品牌消

費(fèi)也將會(huì)越來(lái)越受到重視,總得來(lái)說(shuō)咱們國(guó)內(nèi)品牌消費(fèi)水準(zhǔn)還存在巨大的發(fā)展

空間。

5.2.3依據(jù)工藝類別進(jìn)行統(tǒng)計(jì)分析

16

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

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

從圖5-5中可以得知“炒”所在的占比非常多,“煮”其次。與前面圖5-4

的“廚具”相呼應(yīng)?!俺础笔侵谱髅朗匙羁斓姆绞街唬乙子谧尦缮惶?/p>

好的原料染上香料的味道進(jìn)行掩蓋,而且在其中加入的調(diào)料品種類繁多,更能

滿足大家對(duì)味蕾的需要,做出的美食更能吸引人,最關(guān)鍵的是它時(shí)間少,更適

合日常食譜。“煮”的方式對(duì)美食的質(zhì)感大多是以鮮嫩為主要,它做出的美食

口味以鮮咸、清香為主,更符合現(xiàn)在大家的口味。在“炒”這種方式中,鹽是

必不可少的一種佐料。如今鹽市場(chǎng)各有各的特色,擁有了更多選擇。而近幾年,

由于品種鹽盈利更強(qiáng),慢慢隨著鹽類市場(chǎng)競(jìng)爭(zhēng)的加劇,就會(huì)出現(xiàn)更多的高溢價(jià)

產(chǎn)品搶占并且細(xì)分市場(chǎng)。不過(guò)由于管制的相對(duì)放開(kāi),以后的食鹽的品種只會(huì)越

來(lái)越多。

5.2.4依據(jù)制作時(shí)間進(jìn)行統(tǒng)計(jì)分析

17

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

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

從圖5-6直方圖中可以看出大家制作美食還是比較偏向用時(shí)少的,“十分

鐘”、“廿分鐘”、“半小時(shí)”這些都是比較讓人能接受的時(shí)間,其中“十分

鐘”的具多,符合大多數(shù)家常菜,也與現(xiàn)在大家的快節(jié)奏有很大關(guān)系。很多人

工作忙的時(shí)候就覺(jué)得做“美食”是一種浪費(fèi)時(shí)間,選擇時(shí)間相對(duì)來(lái)少的一種可

能是大多數(shù)人的常態(tài)。像如意粉勺、剝蒜器、解凍板等之類的廚房小工具利用

起來(lái)可以讓我們省很多時(shí)間。市面上這類工具種類繁多,需求量也是比較大的,

而且價(jià)格便宜、操作簡(jiǎn)單,更主要的是實(shí)用性高是真正的賣點(diǎn)。特別是疫情下,

使得居家烹飪大幅增加,更受年輕人的青睞。

5.2.5依據(jù)所屬類別進(jìn)行統(tǒng)計(jì)分析

圖5-7代碼及數(shù)據(jù)展示頁(yè)面圖

18

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

我們從圖5-7中可以看出,“熱菜”和“湯類”的數(shù)量都非常高。與前面

所分析“使用廚具”結(jié)果大致相同?!盁岵恕钡闹谱饕髸r(shí)間短,要趁熱食用。

“湯類”我想主要是大家喜歡喝點(diǎn)口味“鮮”的東西(圖5-3),能滿足多數(shù)人

的口味需求?!盁岵恕钡姆N類是相當(dāng)多,各有各的特色。近幾年慢慢出現(xiàn)的創(chuàng)

新熱菜,大家根據(jù)個(gè)人喜好用各類食材搭配,如:醬燜牛肋骨、農(nóng)家小公雞、

脆皮河鮮豆腐等。如雨后春筍般出現(xiàn)在各大店鋪,更多的會(huì)把他們的創(chuàng)新熱菜

定為招牌菜。這類創(chuàng)新熱菜仍有很大空間,如今大眾就喜歡嘗試一些新鮮東西。

5.3綜述

綜上,隨著社會(huì)的高速了展,越來(lái)越多的人都處在一個(gè)快節(jié)奏的生活方式

中。生活的緊湊感愈發(fā)強(qiáng)烈,這也促使我們?cè)谏畹母鞣矫娑家蟾拥谋憬荨?/p>

現(xiàn)今大家對(duì)“美食”的要求廚具簡(jiǎn)單、時(shí)間短、口味好。簡(jiǎn)單的炒鍋、煮鍋,

更能節(jié)省很大一部分時(shí)間,更符合現(xiàn)在的快節(jié)奏生活??觳褪降男问剿坪醭闪?/p>

現(xiàn)代大家的飲食習(xí)慣。畢竟大多工作疲憊,瑣事繁多,為了那么一道兩道菜扎

進(jìn)廚房一個(gè)小時(shí)或者幾個(gè)小時(shí),相對(duì)來(lái)說(shuō)不現(xiàn)實(shí),而且性價(jià)比也確實(shí)有些低。

可能更多的人選擇的是點(diǎn)外賣,或者別的一些比較快的方式來(lái)解決自己的一日

三餐,這些都取決于時(shí)間“快”,口味“鮮”,營(yíng)養(yǎng)要跟的上,時(shí)間還要快。

“美食就是生活?!逼鋵?shí)這句話一點(diǎn)也沒(méi)錯(cuò)。跑外賣是真的賺錢,收入與行動(dòng)

幾乎成正比,多數(shù)年輕人就喜歡這種吃飯“偷懶”的方式。另外,近年來(lái)不少

餐飲開(kāi)始做明檔,甚至恨不得把所有美食都拿出來(lái)明檔展示。這只是在白費(fèi)功

夫,明檔只做精,最好是本店的精品或者是招牌菜。而且在營(yíng)銷上不必費(fèi)盡心

思,各種歌舞表演,敲鑼打鼓的,讓顧客覺(jué)得新鮮好玩??墒沁@樣不長(zhǎng)久,畢

竟顧客是來(lái)“吃”的,不是來(lái)“看

溫馨提示

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

評(píng)論

0/150

提交評(píng)論