版權(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畢業(yè)設(shè)計(jì)背景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采集目標(biāo)功能分析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編程實(shí)現(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ù)存儲(chǔ)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ù)學(xué)院畢業(yè)設(shè)計(jì)
4.2數(shù)據(jù)儲(chǔ)存14
5數(shù)據(jù)統(tǒng)計(jì)與分析15
5.1數(shù)據(jù)準(zhǔn)備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ù)學(xué)院畢業(yè)設(shè)計(jì)
基于Python的下廚房美食網(wǎng)站數(shù)據(jù)采集與分析
1引言
當(dāng)今世界未有之大變局,Internet成為21世紀(jì)備受關(guān)注的行業(yè)之一,它的
高速發(fā)展和在全球的普及應(yīng)用正在給人類生活帶來革命性變化,正是我們這一
代年輕人應(yīng)該抓住的時(shí)機(jī)和機(jī)會(huì)。衣食住行各個(gè)方面產(chǎn)生的海量數(shù)據(jù)之前被人
忽略,時(shí)代的發(fā)展讓人們知道了數(shù)據(jù)分析的重要性,通過巨大的信息網(wǎng)絡(luò)中發(fā)
現(xiàn)的蛛絲馬跡卻能給人們帶來極大的便利。
1.1畢業(yè)設(shè)計(jì)背景
一日三餐維持著最基本的生存,而對于中國這個(gè)14億人口的大國,一方山
水養(yǎng)一方人,不同的飲食習(xí)慣也由此產(chǎn)生。前一陣子的疫情原因使得人們外出
活動(dòng)變少,對于吃來說依舊是不馬虎,在各種格式的美食分享網(wǎng)站和app中尋
找自己的食譜。
對于一家美食網(wǎng)站而言,菜譜種類以及數(shù)量質(zhì)量直接決定了用戶數(shù)量,我們
需要對網(wǎng)頁進(jìn)行解析,然后通過Python爬蟲的手段批量獲取我們想要的分類下
的內(nèi)容。我的畢業(yè)設(shè)計(jì)就是通過分析下廚房網(wǎng)站,然后爬取該網(wǎng)站下一欄下的分
類菜譜數(shù)據(jù),對爬取下來的數(shù)據(jù)進(jìn)行預(yù)處理、分析、可視化等步驟。繁雜的數(shù)據(jù)
經(jīng)過清洗加分析后通過圖片展示,網(wǎng)站可以參考數(shù)據(jù)制定策略優(yōu)化內(nèi)容,大家就
可以清楚知道哪些菜譜是最近的熱門菜譜,哪些調(diào)料和食材用的多,購買相應(yīng)
的材料跟上熱潮,有哪些優(yōu)秀作者值得關(guān)注。我的畢業(yè)設(shè)計(jì)包含數(shù)據(jù)爬取、清
洗處理、儲(chǔ)存、可視化分析。
1.2開發(fā)環(huán)境與工具
1.2.1Python簡介
Python由荷蘭數(shù)學(xué)和計(jì)算機(jī)科學(xué)研究學(xué)會(huì)的吉多·范羅蘇姆于1990年代
初設(shè)計(jì),作為一門叫做ABC語言的替代品。Python語言具有簡單、易學(xué)、易讀、
易維護(hù)等特點(diǎn),被廣泛應(yīng)用于Web開發(fā)、數(shù)據(jù)分析、機(jī)器學(xué)習(xí)、人工智能、科
學(xué)計(jì)算等領(lǐng)域。作為一種解釋性語言,Python不需要預(yù)編譯,在運(yùn)行時(shí)需要解
釋器逐行執(zhí)行程序。Python語言的語法簡潔明了,使用縮進(jìn)代替了大括號(hào)來表
1
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
示程序的塊結(jié)構(gòu),這也使得代碼易讀性較高。
Python語言擁有大量的標(biāo)準(zhǔn)庫和第三方庫,包含了各種常用工具和功能模
塊,例如文件操作、網(wǎng)絡(luò)通信、數(shù)據(jù)處理、GUI編程、圖像處理、文本處理、機(jī)
器學(xué)習(xí)、深度學(xué)習(xí)、科學(xué)計(jì)算等。這些庫可以幫助開發(fā)者更加便捷地實(shí)現(xiàn)代碼
編寫,提高了生產(chǎn)效率。Python提供了高效的高級(jí)數(shù)據(jù)結(jié)構(gòu),還能簡單有效地
面向?qū)ο缶幊獭?/p>
除此之外,Python還有豐富的社區(qū)支持,Python社區(qū)中有眾多開源的工具
和框架,例如Django、Flask、PyTorch、Tensorflow、Numpy、Pandas等等,
這些開源工具和框架為Python生態(tài)系統(tǒng)的發(fā)展提供了強(qiáng)大的支持和推動(dòng)。隨著
版本的不斷更新和語言新功能的添加,Python逐漸被用于獨(dú)立的、大型畢業(yè)設(shè)
計(jì)的開發(fā)。
1.2.2Anaconda簡介
Anaconda中文直譯過來就是大蟒蛇,它是一個(gè)開源的python發(fā)行版本,包
含了conda、python還有一大堆安裝好的工具包,Anaconda主要包含以下四個(gè)
部分:
Conda:是Anaconda的包管理和環(huán)境管理工具。它可以方便地創(chuàng)建、刪除
和切換不同的Python環(huán)境,并可以在不同的Python環(huán)境中安裝和管理不同的
包和庫。
Python:Anaconda自帶了Python解釋器,用戶可以直接在Anaconda環(huán)境
中開發(fā)和運(yùn)行Python程序。
Packages:Anaconda自帶了大量的Python科學(xué)計(jì)算和數(shù)據(jù)分析的包和庫,
例如Numpy、Scipy、Pandas、Matplotlib、Scikit-learn等等。這些包和庫可
以直接在Anaconda環(huán)境中使用,無需額外安裝。
GUI:Anaconda還提供了一個(gè)名為AnacondaNavigator的圖形化界面,可
以方便地管理和使用環(huán)境、包和庫。
1.2.3Jypyternotebook簡介
Jupyternotebook是一種基于瀏覽器的工具。如果你想使用Python在
JupyterNotebook中進(jìn)行編程,首先需要在本地安裝Python和Jupyter
Notebook環(huán)境。一般來說,你可以通過安裝一個(gè)Python發(fā)行版,例如Anaconda
來方便地獲得這兩者。安裝好后,你可以在終端中打開JupyterNotebook,它
會(huì)自動(dòng)在瀏覽器中開啟一個(gè)網(wǎng)頁,顯示Notebook主頁。
2
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
在Notebook中,每個(gè)Notebook都由一系列單元格組成。這些單元格可以
包含代碼、Markdown文本或者Raw文本。你可以在單元格中編寫Python代碼,
逐個(gè)運(yùn)行代碼單元格并獲像一個(gè)筆記本它將實(shí)時(shí)代碼、說明文本、數(shù)學(xué)方程、
可視化內(nèi)容結(jié)合起來,放在一個(gè)可共享的文檔中而且它支持Markdown標(biāo)記語言,
在瀏覽器編輯界面可以很方便的添加注釋。在jypyternotebook執(zhí)行代碼的時(shí)
候?qū)τ谧⑨屝晕谋静⒉粫?huì)執(zhí)行,極大的方便了老師教學(xué),或者開發(fā)者講解畢業(yè)設(shè)
計(jì)。
1.2.4Python第三方庫簡介
Python第三方庫在使用前要先進(jìn)行安裝。
requests:requests庫建立在Python語言的urllib3庫基礎(chǔ)上,更為簡潔,
是一個(gè)處理HTTP請求的第三方庫,它的最大優(yōu)點(diǎn)是程序編寫過程更接近URL訪
問過程。
Csv:csv屬于python中的內(nèi)置模塊,它能夠讀取csv格式的文件或者將數(shù)
據(jù)存入到csv表格中,csv是表格和數(shù)據(jù)庫中常見的文件操作格式。
NumPy庫是Python數(shù)據(jù)分析的基礎(chǔ),用于處理多維數(shù)組,可以存儲(chǔ)和處理大
型矩陣,它還提供了高級(jí)的數(shù)值編程工具,計(jì)算比python提供的列表結(jié)構(gòu)要高
效的多。
pandas:基于numpy擴(kuò)展的一個(gè)重要第三方庫,它是為了解決數(shù)據(jù)分析任
務(wù)而創(chuàng)建的。pandas提供了一批標(biāo)準(zhǔn)的數(shù)據(jù)模型和大量快速便捷出來數(shù)據(jù)的函
數(shù)和方法,提供了高效的操作大型數(shù)據(jù)集所需要的工具。
matplotlib:繪圖庫,主要是偏向于二維繪圖包括折線圖、條形圖、扇形圖、
散點(diǎn)圖、直方圖等等。
Pyecharts:將python與echarts結(jié)合的強(qiáng)大的數(shù)據(jù)可視化工具。使用
pyecharts可以生成獨(dú)立的網(wǎng)頁,也可以在flask,Django中集成使用。
2需求分析
2.1可行性需求分析
1、技術(shù)可行性
Python是面向?qū)ο笳Z言中的一門通俗易懂的計(jì)算機(jī)編程語言,本次畢業(yè)設(shè)
計(jì)中使用Python編寫程序來實(shí)現(xiàn)數(shù)據(jù)獲取,數(shù)據(jù)清洗預(yù)處理,數(shù)據(jù)可視化。在數(shù)
據(jù)獲取的過程中通過抓包分析發(fā)現(xiàn)下廚房網(wǎng)站編寫代碼得到網(wǎng)頁面數(shù)據(jù)的返回
3
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
值。隨后將爬取出來的原始數(shù)據(jù)暫時(shí)以csv格式儲(chǔ)存起來,隨后用python自帶
的庫來實(shí)現(xiàn)數(shù)據(jù)可視化的內(nèi)容。
以上為此次畢業(yè)設(shè)計(jì)的技術(shù)可行性,我也將在后續(xù)的工作中將所有的步驟
實(shí)現(xiàn)到位,保證數(shù)據(jù)的準(zhǔn)確性和安全性。
2、畢業(yè)設(shè)計(jì)可行性
民以食為天,本次畢業(yè)設(shè)計(jì)通過采集比較美食社區(qū)中位居前列的下廚房網(wǎng)
站來分析大眾喜愛的美食。我們也將從菜品種類、評分及菜系等方面對其進(jìn)行
剖析,分析出有價(jià)值的信息,將其可視化最后根據(jù)結(jié)果得出結(jié)論。
2.2采集目標(biāo)功能分析
本次畢業(yè)設(shè)計(jì)的數(shù)據(jù)集的來源是下廚房網(wǎng)站,是通過python爬取下廚房網(wǎng)
站部分分欄下不同菜系下的信息。數(shù)據(jù)清洗后共833條記錄,爬取完成后盡可能
的檢查數(shù)據(jù)的準(zhǔn)確性,確定爬取出來的數(shù)據(jù)無誤。
分析下廚房網(wǎng)站網(wǎng)頁信息,我們需要爬取的參數(shù)有菜品、鏈接、用料、評分、
作者、菜系等數(shù)據(jù),在對原始數(shù)據(jù)進(jìn)行預(yù)處理后我們會(huì)對其數(shù)據(jù)進(jìn)行分析。例如,
從菜系的數(shù)量對其進(jìn)行分析對比,查看各個(gè)菜系有多少,大眾更偏好的是哪一種,
通過菜品平均分占比來網(wǎng)站可以參考內(nèi)容要做哪些方面的調(diào)整。通過最近7天
內(nèi)做過菜品人數(shù)字段對比來獲取最近大家都在做哪些菜,根據(jù)用料繪制詞云圖
來看哪些調(diào)料和食材用的多。又或者想要關(guān)注一些優(yōu)質(zhì)作者分享的菜品,那么我
們就可以根據(jù)作者分組來統(tǒng)計(jì)每個(gè)作者的菜品數(shù)量,和菜品評分的平均分來分
析出哪些是值得關(guān)注的作者。
2.3關(guān)鍵技術(shù)分析
2.3.1網(wǎng)絡(luò)爬蟲技術(shù)
上網(wǎng)時(shí)都會(huì)遇到需要緩存在本地的數(shù)據(jù),當(dāng)數(shù)量比較小的時(shí)候我們可以自
己采取手動(dòng)下載的方式去獲得想要的數(shù)據(jù),不過在我們的大數(shù)據(jù)領(lǐng)域接觸到的
數(shù)據(jù)量是非常大的。如果我們需要獲取的數(shù)據(jù)量極為龐大,這個(gè)時(shí)候一個(gè)一個(gè)
去點(diǎn)擊下載獲取數(shù)據(jù)無疑是很麻煩的,能不能有一種辦法可以讓電腦幫我點(diǎn)擊
下載,幫我收集資料呢。
網(wǎng)絡(luò)爬蟲就可以幫助我們,網(wǎng)絡(luò)爬蟲也被人們叫做網(wǎng)絡(luò)機(jī)器人,顧名思義就
是只需要編寫程序或者一些小腳本來控制爬蟲自動(dòng)的瀏覽互聯(lián)網(wǎng)并且對想要的
目標(biāo)進(jìn)行精準(zhǔn)的數(shù)據(jù)的采集。網(wǎng)絡(luò)爬蟲按照系統(tǒng)結(jié)構(gòu)和實(shí)現(xiàn)技術(shù),大致可以分
4
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
為以下幾種類型:通用網(wǎng)絡(luò)爬蟲(GeneralPurposeWebCrawler)、聚焦網(wǎng)絡(luò)
爬蟲(FocusedWebCrawler)、增量式網(wǎng)絡(luò)爬蟲(IncrementalWebCrawler)、
深層網(wǎng)絡(luò)爬蟲(DeepWebCrawler)。實(shí)際的網(wǎng)絡(luò)爬蟲系統(tǒng)通常是幾種爬蟲技術(shù)
相結(jié)合實(shí)現(xiàn)的。
在大家的印象中常常將普通的網(wǎng)絡(luò)爬蟲與黑客混為一談,其實(shí)二者之間有
很大的區(qū)別。黑客屬于違反法律肆意竊取個(gè)人或者組織內(nèi)有價(jià)值的信息以此獲
利,而爬蟲就是一個(gè)探測機(jī)器,它的基本操作就是模擬人的行為去各個(gè)網(wǎng)站溜達(dá),
點(diǎn)點(diǎn)按鈕,查查數(shù)據(jù),或者把看到的信息背回來。簡單來說,它包含三個(gè)步驟:
采集信息、數(shù)據(jù)存儲(chǔ)和信息提取。別有用心之人就會(huì)利用調(diào)整爬蟲的訪問頻率,
對于被訪問的網(wǎng)站而言會(huì)增加其負(fù)荷導(dǎo)致網(wǎng)址奔潰。
由此可見,網(wǎng)絡(luò)爬蟲技術(shù)是一把雙刃劍,一個(gè)不小心可能就會(huì)傷害到自己和
他人,所以我們技術(shù)人員要懂法、守法。在法律允許的范圍內(nèi)去編寫自己的腳本
程序,堅(jiān)決不能做違法犯罪的行為。
有爬蟲技術(shù),那也一定存在反爬取的技術(shù)了。爬蟲要能夠繞過或者突破人家
的防守機(jī)制從而獲取到自己想到要的數(shù)據(jù)。常見的反爬機(jī)制有要求你登錄輸入
驗(yàn)證碼、IP、JS加密、css反爬、或者Ajax異步等手段,這些手段會(huì)加大爬取
數(shù)據(jù)的工作量,也會(huì)加大網(wǎng)站的開發(fā)成本,所以像一般的小網(wǎng)站最多設(shè)置一個(gè)小
反爬,對于我們獲取數(shù)據(jù)來說比較容易。
2.3.2文件存取技術(shù)
Python存儲(chǔ)語句如圖2-1顯示:
圖2-1python存儲(chǔ)語句圖
2.3.3可視化技術(shù)
爬取下來的數(shù)據(jù)通過預(yù)處理、保存為csv文件格式。該數(shù)據(jù)我們能否一眼
就得到我們想要的結(jié)論呢?很顯然是不可能的,一目十行也只是瀏覽,機(jī)器不
能根據(jù)特定場景和用戶需求來進(jìn)行思考我們就需要一種技術(shù),根據(jù)我們獲取到
的龐大數(shù)據(jù)將其通過統(tǒng)計(jì)學(xué)圖形的方式展現(xiàn)在我們眼前,讓我們對其結(jié)果一目
了然。這個(gè)就是數(shù)據(jù)可視化技術(shù)。
可視化技術(shù)使人能夠在三維圖形世界中直接對具有形體的信息進(jìn)行操作,
5
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
和計(jì)算機(jī)直接交流。這種技術(shù)已經(jīng)把人和機(jī)器的力量以一種直覺而自然的方式
加以統(tǒng)一,這種革命性的變化無疑將極大地提高人們的工作效率??梢暬夹g(shù)
賦予人們一種仿真的、三維的并且具有實(shí)時(shí)交互的能力,這樣人們可以在三維
圖形世界中用以前不可想象的手段來獲取信息或發(fā)揮自己創(chuàng)造性的思維。多年
來可視化的技術(shù)也逐漸發(fā)展成為了一下三類:科學(xué)可視化、信息可視化、可視
化分析。而我們這里用到的就是信息可視化,信息可視化的處理對象是非結(jié)構(gòu)化、
非幾何的抽象數(shù)據(jù),如金融交易、社交網(wǎng)絡(luò)和文本數(shù)據(jù),其核心挑戰(zhàn)是針對大尺
度高維復(fù)雜數(shù)據(jù)如何減少視覺混淆對信息的干擾。
本次畢業(yè)設(shè)計(jì)的數(shù)據(jù)可視化,使用python第三方庫matpoltlab、pyecharts
去進(jìn)行,兩個(gè)庫中包含了許多庫,分別對應(yīng)餅圖、條形圖、直方圖、折線圖等圖
形,可以很好的將數(shù)據(jù)高效率的表現(xiàn)出來。
3下廚房網(wǎng)數(shù)據(jù)采集
3.1采集頁面分析
我們首先通過谷歌瀏覽器搜索下廚房進(jìn)入首頁,點(diǎn)擊全部分類找到菜式目
錄下查看不同菜品的信息,觀察圖3-1,3-2其中URL為:
/category/*****/,觀察下面兩張圖片可以看出,
點(diǎn)擊不同的菜式網(wǎng)址也在變化。
圖3-1下廚房網(wǎng)址頁面1圖
6
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
圖3-2下廚房網(wǎng)址頁面2圖
點(diǎn)擊鼠標(biāo)右鍵選擇檢查,跳出開發(fā)者工具頁面,如圖3-3所示。
圖3-3分析網(wǎng)頁頁面圖
切換至網(wǎng)絡(luò)面板(Network),刷新一下頁面,點(diǎn)擊“400076/”資源里的,
Headers標(biāo)簽,可以看到它的請求類型是GET,所以我們可以根據(jù)以上特點(diǎn)通過
Requests方法發(fā)送請求來獲得響應(yīng)的數(shù)據(jù),指定編碼后就可以獲取網(wǎng)頁信息,
如3-4所示。接著往下翻就可以找到爬取時(shí)需要使用的User-Agent,如3-5所
示。
7
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
圖3-4分析網(wǎng)頁Headers請求頁面圖
圖3-5User-Agent圖
3.2字段分析
8
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
點(diǎn)擊開發(fā)者工具界面上方的數(shù)據(jù)預(yù)覽Preview按鈕,如圖3-6,可以看到我
們需要的所有的數(shù)據(jù)信息都是呈現(xiàn)json格式傳遞在這個(gè)網(wǎng)頁面,所以我們只要
重復(fù)獲取響應(yīng)然后把數(shù)據(jù)依次寫入到csv格式的文件當(dāng)中就好了。
圖3-6分析數(shù)據(jù)xpath信息頁面圖
點(diǎn)擊需要獲取的數(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ù)學(xué)院畢業(yè)設(shè)計(jì)
3.3編程實(shí)現(xiàn)
3.3.1導(dǎo)入所需庫
自行下載導(dǎo)入進(jìn)行網(wǎng)頁數(shù)據(jù)爬取以及存儲(chǔ)會(huì)用到的庫,如下代碼所示。
圖3-8導(dǎo)入庫圖
3.3.2頁面解析
創(chuàng)建一個(gè)空列表用來存放代表不同菜式的數(shù)字,遍歷該列表,利用for循
環(huán)來實(shí)現(xiàn)獲取不同菜式網(wǎng)頁的內(nèi)容,通過觀察不同頁面的url可以看出
category/{}代表不同的菜式,page{}代表不同頁數(shù)的頁面,利用format函數(shù)
改變數(shù)字來實(shí)現(xiàn)自動(dòng)切換菜式和翻頁的效果,這里我們每個(gè)菜系爬取25頁。獲
取url后我們利用requests對網(wǎng)頁發(fā)起請求,使用lxml對獲取到的內(nèi)容進(jìn)行
解析,解析成功后使用xpath語句對需要的字段內(nèi)容進(jìn)行爬取。
圖3-9頁面解析圖
3.3.3數(shù)據(jù)獲取
遍歷lis列表獲取每一個(gè)菜品的信息。獲取下面分析所需要的字段,['菜
名','菜品鏈接','用料','評分','7天內(nèi)做過的人數(shù)','作者','菜系']。菜品鏈
接我們需要拼接一下公共部分,后期在文件里面存儲(chǔ)的鏈接就可以直接打開。
在對用料這個(gè)字段的數(shù)據(jù)進(jìn)行爬取時(shí)存儲(chǔ)顯示不完整,所以在這里使用join函
數(shù)把單個(gè)原料整合在一起,如['奶油奶酪','藍(lán)莓','茴香']這個(gè)列表的元素在
經(jīng)過整合之后就變成了['奶油奶酪,藍(lán)莓,茴香']。在爬取7天內(nèi)做過人數(shù)的字
段時(shí)有一些新更新的菜品因?yàn)檫€沒有人做過會(huì)影響存儲(chǔ),所以我們加入判斷如
10
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
果爬取列表為空添加元素為0。對于菜系字段我們封裝了一個(gè)choose函數(shù)通過
不同的編碼來判斷是哪種菜系。
圖3-10數(shù)據(jù)獲取圖
3.3.4網(wǎng)頁數(shù)據(jù)存儲(chǔ)
獲取完所用字段之后,使用zip函數(shù)把所有的菜品名稱、鏈接、用料、評
分、做菜人數(shù)、作者以及菜系進(jìn)行整合。每循環(huán)一次就把整合好的數(shù)據(jù)存儲(chǔ)在
定義好的列表中,最后利用pandas庫的功能存儲(chǔ)成csv文件,指定編碼
utf-8_sig。
代碼如下:
圖3-11數(shù)據(jù)存儲(chǔ)圖
4數(shù)據(jù)清洗與處理
獲得所需的數(shù)據(jù)之后,為了方便下一步繪圖我們需要對數(shù)據(jù)進(jìn)行預(yù)處理,數(shù)
據(jù)清洗是對數(shù)據(jù)進(jìn)行重新審查和校驗(yàn)的過程,目的在于刪除重復(fù)信息、糾正存
在的錯(cuò)誤,或者是重新生成便于后續(xù)可視化的字段,還要保證數(shù)據(jù)的一致性,不
僅如此,我們需要將數(shù)據(jù)進(jìn)行重新排序使數(shù)據(jù)有序化,這樣子在開發(fā)人員對數(shù)據(jù)
信息的調(diào)用和共享過程中都很方便。下面我們需要將爬下來的數(shù)據(jù)和網(wǎng)頁原數(shù)
據(jù)進(jìn)行比對,并且檢查是否出現(xiàn)空值、錯(cuò)值,還有數(shù)據(jù)的位置是否正確。根據(jù)不
同的需求我們要對數(shù)據(jù)進(jìn)行不同的處理。
11
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
4.1數(shù)據(jù)清洗
在本畢業(yè)設(shè)計(jì)中我們主要是把無用列進(jìn)行刪除,再檢查一下后續(xù)可視化需
要用到的字段有無重復(fù)、錯(cuò)誤和缺失,如菜名、用料等字段,同時(shí)還要注意字
段的類型。
4.1.1數(shù)據(jù)預(yù)覽
圖4-1數(shù)據(jù)預(yù)覽圖
導(dǎo)入兩個(gè)庫顯示部分?jǐn)?shù)據(jù),我們把后續(xù)分析用不到的菜品鏈接這一列刪除。
圖4-2刪除無用列圖
12
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
4.1.2菜名重復(fù)數(shù)據(jù)去除
我們把關(guān)于菜名字段重復(fù)的數(shù)據(jù)行進(jìn)行刪除。
圖4-3重復(fù)數(shù)據(jù)去除圖
4.1.3無效值、缺失值處理
下廚房評分滿分為10,然而通過觀察評分我們可以看出存在數(shù)據(jù)大于10以
上的字段,為了后面便于分析,我們用replace來把評分大于10和等于0的數(shù)
據(jù)統(tǒng)一替換成空值進(jìn)行下一步處理。
圖4-4無效值處理圖
13
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
經(jīng)過檢查,發(fā)現(xiàn)數(shù)據(jù)除了剛剛置空的評分字段還有用料這一列存在缺失,那
么我們把存在空值的數(shù)據(jù)行進(jìn)去除。
圖4-5缺失值數(shù)據(jù)行去除圖
4.2數(shù)據(jù)儲(chǔ)存
剩下需要的數(shù)據(jù),重新排序整理后以原網(wǎng)頁格式存入data_zhp.csv文件中,
留存后續(xù)作為數(shù)據(jù)分析可視化使用。數(shù)據(jù)儲(chǔ)存的方法有很多種,如果需要儲(chǔ)存較
大的數(shù)據(jù)信息就需要用數(shù)據(jù)庫,數(shù)據(jù)庫使用的sql語句在頻繁的數(shù)據(jù)修改和統(tǒng)
計(jì)計(jì)算方面表現(xiàn)都很優(yōu)秀?;蛘咭部梢灾苯佑糜浭卤靖袷絻?chǔ)存(txt),其他文
件的形式儲(chǔ)存csv、excel、json等,為了方便讀取且本次爬取的數(shù)據(jù)較少,所
以我們選擇保存在csv就好了。
如圖4-6所示:
圖4-6數(shù)據(jù)存儲(chǔ)為csv文件圖
14
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
5數(shù)據(jù)統(tǒng)計(jì)與分析
5.1數(shù)據(jù)準(zhǔn)備
導(dǎo)入相關(guān)庫,使用python加載源數(shù)據(jù),如圖5-1、5-2。
圖5-1數(shù)據(jù)加載頁面圖
圖5-2數(shù)據(jù)頁面圖
15
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
5.2數(shù)據(jù)展示
5.2.1各菜系菜譜數(shù)量占比餅圖
圖5-3數(shù)據(jù)展示頁面圖
按照文件中菜系的字段將數(shù)據(jù)進(jìn)行匯總和降序處理如圖5-3中可以看出家
常菜數(shù)量占比最高,其次就是快手菜。說明菜譜還是多以生活中來并且貼近生活,
大家更加喜歡去分享平時(shí)自己喜歡且更容易接觸到的菜譜。而相對于下酒菜來
說受眾群體相對較小菜譜數(shù)量也少??焓植藬?shù)量占比僅次于家常菜,說明短視
頻用戶基數(shù)大,用來推廣菜式菜品更為高效。創(chuàng)新占比排名第三。綜上,對于
美食網(wǎng)站而言,菜式內(nèi)容要更為大眾化,新潮化。
16
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
5.2.2最受歡迎的十二道菜折線圖
圖5-4數(shù)據(jù)展示頁面圖
根據(jù)字段7天內(nèi)做過的人數(shù)繪制圖5-4,中可以看出來7內(nèi)天最受歡迎的十
二道菜,該圖可以從一周做過的人數(shù)多少來分析出最近一周的熱門菜譜有哪些,
讓大家緊跟熱點(diǎn),買菜的時(shí)候可以有所參考。通過分析該菜品不難發(fā)現(xiàn)菜名中
帶有‘酸辣’等字眼,天氣逐漸炎熱大家更喜歡比較開胃的菜品。
17
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
5.2.3菜譜評分分布玫瑰圖
圖5-5數(shù)據(jù)展示頁面圖
下廚房網(wǎng)菜譜實(shí)行10分制,從圖5-5可以看出菜品的評分占比分布不勻,
說明該評分可信度較高。獲得8到9分菜品數(shù)占總菜品數(shù)的百分之三十左右,
說明該網(wǎng)站上的菜品能得到半數(shù)以上用戶的好評,百分之四十五的用戶給了7
分以下的評價(jià),這么看來許多菜品還是有進(jìn)步的空間。只有接近百分之十一的
菜品獲得了比較高的評價(jià)算得上“鎮(zhèn)站之寶”的菜品了。總體來說下廚房好評
還是占半數(shù)的,可以看出下廚房還是得到了大家的認(rèn)可。產(chǎn)品更新?lián)Q代經(jīng)歷淘
汰才能跟上人們?nèi)找嬖鲩L的需求,菜品也是一樣,網(wǎng)站要給出激勵(lì)用戶發(fā)布有
質(zhì)量的菜式,也要同時(shí)吸引更多新用戶來做菜進(jìn)行評分,對于評分高的菜譜發(fā)
布作者可以適當(dāng)鼓勵(lì),這樣網(wǎng)站才能有活力長久的運(yùn)營下去。
18
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
5.2.4作者發(fā)布菜品數(shù)量及平均分柱狀圖
圖5-6數(shù)據(jù)展示頁面圖
該圖匯總了發(fā)布菜品數(shù)量前十的作者以及他們發(fā)布菜品評價(jià)的平均分,并
且按照評價(jià)平均分降序進(jìn)行排序。從圖中可以看出作品數(shù)量占大頭的分別是一
顆糖572196和古典美人美食,廚房筆記-fang跟在其后,其余的作者數(shù)量就都
較為一般了,然而數(shù)量不能決定什么,菜品評價(jià)高才是王道。作品數(shù)量較多的
作者一般對食物有更多的接觸,對美食有更多的了解也樂于分享,但是對于一
個(gè)美食網(wǎng)站來說既要有足夠菜式數(shù)量能滿足各類人群的需求,也要保證其菜品
的質(zhì)量才能有穩(wěn)定的用戶群體。對于琳瑯滿目的菜品害怕容易失敗口味不好的
用戶不如關(guān)注圖中菜品評價(jià)較高的作者,參考他的菜譜更快做出自己想要的美
食。
19
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
5.2.5用料詞云圖
圖5-7數(shù)據(jù)展示頁圖
中國菜講究色香味,想要做出佳肴如何用料也有講究。如圖5-7所示,字
體越大的字段說明在菜譜中用的越多,如鹽、耗油、生抽這些用料。用戶可以
根據(jù)用料詞云圖來填充家中的廚房。
5.3綜述
本畢業(yè)設(shè)計(jì)通過xpath對下廚房網(wǎng)站數(shù)據(jù)進(jìn)行爬取,我們得到了菜品種類
和評分等數(shù)據(jù),通過刪除不需要的列,查看評分字段對無效值和缺失值進(jìn)行處理
之后,可視化這些數(shù)
溫馨提示
- 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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年電競館租賃合同范本3篇
- 四年級(jí)數(shù)學(xué)(除數(shù)是兩位數(shù))計(jì)算題專項(xiàng)練習(xí)及答案
- 云南財(cái)經(jīng)職業(yè)學(xué)院《材質(zhì)渲染綜合應(yīng)用》2023-2024學(xué)年第一學(xué)期期末試卷
- 岳陽現(xiàn)代服務(wù)職業(yè)學(xué)院《成衣立裁》2023-2024學(xué)年第一學(xué)期期末試卷
- 云南城市建設(shè)職業(yè)學(xué)院《高溫防護(hù)涂層技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年度高新技術(shù)產(chǎn)業(yè)園區(qū)房地產(chǎn)開發(fā)合作協(xié)議
- 2025年度房地產(chǎn)企業(yè)員工勞務(wù)派遣服務(wù)合同2篇
- 2025年度地下室資產(chǎn)租賃及增值服務(wù)合同3篇
- 2025年度出租車網(wǎng)約車服務(wù)合伙經(jīng)營專項(xiàng)合同
- 2025年度二零二五年度醫(yī)院與高校聯(lián)合教學(xué)科研合作合同
- 中央銀行理論與實(shí)務(wù)期末復(fù)習(xí)題
- 水產(chǎn)養(yǎng)殖生產(chǎn)記錄表模板
- 國家開放大學(xué)電大本科《國際私法》案例題題庫及答案(b試卷號(hào):1020)
- 喜慶中國節(jié)春節(jié)習(xí)俗文化PPT模板
- 各種骨折英文名稱
- 加熱爐溫度控制系統(tǒng)
- 二次供水工程技術(shù)規(guī)程(CJJ140—2010 )
- 小說HOTEL介紹
- 設(shè)備故障處理流程圖
- 晨暉智能一卡通管理系統(tǒng)
- 應(yīng)急預(yù)案評審要素表
評論
0/150
提交評論