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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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開發(fā)環(huán)境與工具................................................................................................2

1.2.1Python簡(jiǎn)介............................................................................................2

1.2.2MySQL簡(jiǎn)介..............................................................................................2

1.2.3Jupyternotebook簡(jiǎn)介........................................................................3

1.2.4Python第三方庫(kù)簡(jiǎn)介............................................................................4

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

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

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

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

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

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

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

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

3.1采集頁(yè)面分析....................................................................................................7

3.2字段分析............................................................................................................9

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

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

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

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

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

5.2.2依據(jù)菜譜難度進(jìn)行統(tǒng)計(jì)與分析...........................................................16

I

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

5.2.3依據(jù)菜譜收藏?cái)?shù)進(jìn)行統(tǒng)計(jì)與分析.......................................................17

5.3綜述..................................................................................................................17

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

參考資料.........................................................................................................................20

II

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

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

1引言

時(shí)光如梭,隨著科技的不斷進(jìn)步和發(fā)展,世界未有之大變局。在當(dāng)前社會(huì)

背景下,我國(guó)的科技也正在不斷地發(fā)展,科技全球化是必然的趨勢(shì),所以我們

年輕一代更應(yīng)該抓住這次機(jī)會(huì)和時(shí)機(jī)?;ヂ?lián)網(wǎng)時(shí)代的到來讓人們的吃穿住行得

到了更多的信息來源渠道,而這些產(chǎn)生的數(shù)據(jù)也給我們這些技術(shù)工作者提供了

大量的數(shù)據(jù)渠道,讓我們獲得更便利的數(shù)據(jù)學(xué)習(xí)、開發(fā)、采集以及應(yīng)用渠道。

在當(dāng)前經(jīng)濟(jì)蓬勃發(fā)展的背景下,隨著國(guó)民經(jīng)濟(jì)水平的提高,人們對(duì)吃穿住

行的重視,從而產(chǎn)生的大量的數(shù)據(jù),這些數(shù)據(jù)等待著被開發(fā)的大量?jī)r(jià)值。計(jì)算

機(jī)行業(yè)的發(fā)展,也使得許多新的語言的被推上熱門,首當(dāng)其沖的就有python,

它通常被認(rèn)為是最好的編程語言,因?yàn)樗浅F揭捉?。它是一種快速、易于

使用且易于部署的編程語言,廣泛用于開發(fā)可擴(kuò)展的Web應(yīng)用程序。我們剛好

在新時(shí)代信息化的浪口,以及漫天信息化、大量IT行業(yè)的涌入,將計(jì)算機(jī)行業(yè)

推入浪潮,使得大量IT工作者的加入,利用便利的開發(fā)條件和大量信息里的價(jià)

值待開發(fā),使得大數(shù)據(jù)技術(shù)與應(yīng)用成為當(dāng)前計(jì)算機(jī)信息領(lǐng)域的一個(gè)比較受歡迎

的行業(yè)分支,也正因如此,大數(shù)據(jù)技術(shù)與應(yīng)用也會(huì)發(fā)展的越來越好。

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

中華上下五千年,中華文化,博大精深,中國(guó)的美食數(shù)不盡數(shù),不同的季

節(jié)有不同的美食,每個(gè)地域也有每個(gè)地域的美食,每個(gè)省的美食也各有特色,

美食文化各自都不盡相同。在我國(guó),人口基數(shù)大,地域?qū)拸V,美食愛好也是不

盡相同的。

國(guó)民經(jīng)濟(jì)水平的提高,人們對(duì)吃得到了更多的重視。我們將菜系分為川菜、

粵菜、東北菜、湘菜、魯菜、浙菜、湖北菜和清真菜。

我的畢業(yè)設(shè)計(jì)是對(duì)美食杰網(wǎng)站菜系中的東北菜菜系數(shù)據(jù)進(jìn)行爬取采集,將

采集下來的數(shù)據(jù),進(jìn)行數(shù)據(jù)的可視化,可以讓瀏覽者直觀的了解到這八大菜系

之—的東北菜系中的工藝、難度以及瀏覽者收藏量等等。當(dāng)為了吃什么美食而

煩惱時(shí),只要通過此數(shù)據(jù)分析,就可以很好的解決這個(gè)問題。

1

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

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

1.2.1Python簡(jiǎn)介

Python,讀作['pa?θɑn],翻譯成漢語是蟒蛇的意思,并且Python的logo

也是兩條纏繞在一起的蟒蛇的樣子,然而Python語言和蟒蛇實(shí)際上并沒有多大

的關(guān)系,1989年圣誕節(jié)期間,荷蘭的吉多*范羅蘇姆為了在阿姆斯特丹打發(fā)時(shí)間

創(chuàng)造了Python,作為ABC語言的一種繼承。在2002年,python出現(xiàn)了pthon2.x

系列,直至2008年python又發(fā)展成為了python3.x系列。

Python在1991年第一個(gè)版本公開問世后,并沒有掀起太大的波瀾,在21世

紀(jì)初Google在大量的項(xiàng)目業(yè)務(wù)上大規(guī)模的開始應(yīng)用Python,Python也因此走

進(jìn)大眾的視野,從而促使Python的發(fā)展。Python的應(yīng)用方向包括:常規(guī)軟件開

發(fā)、科學(xué)計(jì)算、自動(dòng)化運(yùn)維、云計(jì)算、WEB開發(fā)、網(wǎng)絡(luò)爬蟲、數(shù)據(jù)分析以及人工

智能等。并且Python是一種非常有效的語言,比用Python編寫的許多其他語

言包含更少的代碼量。Python語法還可以幫助編程者創(chuàng)建干凈的代碼。它比用

Python以外的其他語言編寫的代碼更容易閱讀、調(diào)試、擴(kuò)展。簡(jiǎn)單易學(xué)的特點(diǎn)

也成為很多小白選擇編程語言的第一首選。

雖然python的優(yōu)點(diǎn)有很多,但是任何編程語言都會(huì)有或多或少的缺點(diǎn),

python也不會(huì)例外。Python發(fā)布于30多年前,但直到最近幾年,它才比除Java

和C之外的其他語言更受歡迎。不幸的是,這種流行暴露了Python的缺點(diǎn)。最

明顯和已知的缺點(diǎn)是計(jì)算能力、數(shù)據(jù)打包和可執(zhí)行文件的創(chuàng)建以及項(xiàng)目。

在如今的技術(shù)潮流趨勢(shì)下Python是人工智能中非常流行的語言,雖然它仍

然有缺點(diǎn),但這些特點(diǎn)無法阻止python這門編程語言快速發(fā)展。因?yàn)樗暮?jiǎn)潔

性、易讀性、可擴(kuò)展性和可維護(hù)性,一種多用途編程語言和大量的應(yīng)用和涉及

領(lǐng)域等特點(diǎn),所以python的未來前景十分樂觀。隨著人工智能、機(jī)器學(xué)習(xí)和大

數(shù)據(jù)分析技術(shù)的發(fā)展,python將會(huì)得到更多的應(yīng)用,而且未來可能更加的廣泛。

1.2.2MySQL簡(jiǎn)介

開放源代碼數(shù)據(jù)庫(kù)只是一個(gè)帶有源代碼的公共數(shù)據(jù)庫(kù)。用戶可以自由閱讀、

編輯和擴(kuò)展軟件。對(duì)于大多數(shù)人來說,最有趣的特性是可以在任何地方、任何

時(shí)間使用任何硬件運(yùn)行。源代碼是所有程序員都可以根據(jù)需要使用的公共資源。

隨著時(shí)間的推移,開源數(shù)據(jù)庫(kù)在低端應(yīng)用程序中變得流行,并占據(jù)了相當(dāng)大的

市場(chǎng)份額。開源數(shù)據(jù)庫(kù)具有使用免費(fèi)、配置簡(jiǎn)單、穩(wěn)定性好、性能優(yōu)異等特點(diǎn)。

2

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

許多新的數(shù)據(jù)庫(kù)都是從開源項(xiàng)目開始的。數(shù)十家新公司發(fā)布了基于開源社

區(qū)許可證的新數(shù)據(jù)庫(kù)。他們中的大多數(shù)人還試圖通過銷售支持和其他獨(dú)家功能

獲得支持。其中一些開源項(xiàng)目基于以前的版本。MariaDB是MySQL的一個(gè)分支,

由MySQL的創(chuàng)始人之一MontyVidenius創(chuàng)建。MySQLOracle發(fā)布后,新版本開

始了。第一個(gè)版本從源代碼庫(kù)開始,但最新版本增加了一些功能,以加快處理

大型數(shù)據(jù)集。SQL語法的許多基本功能和基本部分是相同的,因此許多開發(fā)人員

可以在它們之間自由切換。這種差異在未來可能會(huì)擴(kuò)大。例如,MariaDB增加了

與Cassandra、TokuDB和Sphinx等流行數(shù)據(jù)庫(kù)的集成。

MySQL數(shù)據(jù)庫(kù)是開源數(shù)據(jù)庫(kù)的代表。MySQL是目前最流行的開源數(shù)據(jù)庫(kù)。它

是一個(gè)完全基于Web的關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)。瑞典MySQLAB開發(fā)的符號(hào)是一只名叫

Sakilla的海豚,代表MySQL數(shù)據(jù)庫(kù)和團(tuán)隊(duì)的速度、容量、準(zhǔn)確性和卓越性。MySQL

是開源代碼的數(shù)據(jù)庫(kù)、有著跨平臺(tái)性和價(jià)格優(yōu)勢(shì)以及強(qiáng)大且方便的功能提供給

用戶使用的特點(diǎn)。

1.2.3Jupyternotebook簡(jiǎn)介

什么是JupyterNotebook?按照J(rèn)upyter創(chuàng)始人FernandoPérez的說法,

他最初的夢(mèng)想是做一個(gè)綜合Ju(Julia)、Py(Python)和R三種科學(xué)運(yùn)算

語言的計(jì)算工具平臺(tái),所以將其命名為Ju-Py-te-R。JupyterNotebook是一個(gè)

基于瀏覽器的交互式編程環(huán)境(REPL,readevalprintloop),它主要構(gòu)建

在IPython等開源庫(kù)上,允許我們?cè)跒g覽器上運(yùn)行交互式python代碼。發(fā)展到

現(xiàn)在,Jupyter已經(jīng)成為一個(gè)幾乎支持所有語言,能夠把軟件代碼、計(jì)算輸出、

解釋文檔、多媒體資源整合在一起的多功能科學(xué)運(yùn)算平臺(tái)。

既然jupyter編輯器能夠被很多開發(fā)者喜愛,那它一定是有著一定的優(yōu)點(diǎn)

可以去吸引用戶的。Jupyternotebook具有整合所有的資源、交互性編程體驗(yàn)、

零成本重現(xiàn)結(jié)果的優(yōu)點(diǎn)。

Jupyternotebook有兩種安裝方式,第一種:如果個(gè)人擅長(zhǎng)使用python,

可以在安裝python后通過pip安裝,還可以根據(jù)自身要求安裝安裝所需要的開

源包;第二種:如果是一個(gè)python剛?cè)腴T的新手,那么可以去安裝Anaconda,

非常適合初學(xué)者,它包含了大量的科學(xué)包,其中就包括Numpy、Pandas、

Matplotlib等大量的科學(xué)包,可以避免去單獨(dú)安裝,里面也有管理工具conda,

方便單獨(dú)安裝。

3

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

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

requests:request請(qǐng)求是一個(gè)HTTP庫(kù),它使用Apache2許可的開源協(xié)議。

requests使用和urlib使用對(duì)比,就會(huì)發(fā)現(xiàn)urlib在使用中非常不舒服。

requests請(qǐng)求變得比urlib更方便,這也可以節(jié)省我們大量的工作。

Re:正則表達(dá)式解析和處理功能庫(kù),主要用于字符串匹配,調(diào)用方法import

re。

Lxml:lxml是Python的第三方解析庫(kù),lxml庫(kù)提供了一個(gè)etree模塊,

該模塊專門用來解析HTML/XML文檔。

NumPy:Numpy庫(kù)是Python數(shù)據(jù)分析的基礎(chǔ),是處理數(shù)組的Python

庫(kù),NumPy庫(kù)的數(shù)據(jù)結(jié)構(gòu)比Python自帶的更加高效。

pandas:將得到的數(shù)據(jù)分析并保存為CSV文件,python數(shù)據(jù)分析高層次應(yīng)

用庫(kù),還可以進(jìn)行數(shù)據(jù)清洗。

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

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

Pyecharts:Pyecharts是一個(gè)用于生成Echart圖的類庫(kù)。它可以連接到

python,并直接使用數(shù)據(jù)從python生成圖像。Echarts是百度的開源數(shù)據(jù)可視

化JS庫(kù)。生成的圖像可視化效果非常好

wordcloud:生成中文詞云的。

2需求分析

2.1可行性需求分析

1、技術(shù)可行性

Python是一門簡(jiǎn)單的面向?qū)ο缶幊陶Z言。語法簡(jiǎn)潔明了,使用方便,python

有著大量的內(nèi)置類型和模塊,以及第三方模塊??梢院芊奖愕恼{(diào)用強(qiáng)大的第三

方庫(kù),比如Numpy、Matplotlib以及pandas。本畢業(yè)設(shè)計(jì)中通過使用Python語

言來編寫程序從而實(shí)現(xiàn)數(shù)據(jù)的獲取,通過python的第三方庫(kù)進(jìn)行數(shù)據(jù)的分析和

數(shù)據(jù)可視化的展示。

在數(shù)據(jù)獲取的過程中發(fā)現(xiàn)有些菜肴的數(shù)據(jù)是空的,我們將其當(dāng)做異常數(shù)據(jù)

處理掉。隨后將爬取出來的原始數(shù)據(jù)暫時(shí)以txt格式儲(chǔ)存起來,在后續(xù)的數(shù)據(jù)預(yù)

處理和可視化中再進(jìn)行調(diào)用。

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

4

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

互聯(lián)網(wǎng)發(fā)展,短視頻大量的出現(xiàn),讓我們可以足不出戶就可以看到外面的

世界。手機(jī)、電腦、互聯(lián)網(wǎng),當(dāng)他們?nèi)齻€(gè)組合在一起,我們?cè)诩揖湍軐W(xué)到各種

各樣的東西。其中美食食譜的熱度也一直受大眾熱議。

本畢業(yè)設(shè)計(jì)通過采集美食杰網(wǎng)站內(nèi)菜系的數(shù)據(jù),分析我國(guó)東北菜的菜肴信

息。我們也將從工藝、口味、烹飪時(shí)間以及制作難度等方面對(duì)其進(jìn)行深度剖析,

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

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

本畢業(yè)設(shè)計(jì)的數(shù)據(jù)集的來源是美食杰網(wǎng)站,是通過python爬取美食杰網(wǎng)站

內(nèi)東北菜所有菜肴的信息。數(shù)據(jù)清洗后共521條記錄,爬取完成后并檢查數(shù)據(jù)的

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

分析美食杰網(wǎng)站網(wǎng)頁(yè)信息,明確我們需要爬取的美食參數(shù)有菜肴名稱、作者、

收藏、瀏覽、工藝、口味、制作時(shí)間、制作難度等數(shù)據(jù),在對(duì)原始數(shù)據(jù)進(jìn)行預(yù)處

理后我們會(huì)對(duì)其數(shù)據(jù)進(jìn)行多個(gè)維度的分析。例如,從收藏的數(shù)量對(duì)其進(jìn)行分析,

得到網(wǎng)友的鐘意美食排行榜。又或者想要得到東北菜各口味的喜愛程度,可以

對(duì)所采集的數(shù)據(jù)進(jìn)行口味百分比分析。

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

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

你刷微博,你有一個(gè)特別喜歡的微博名人想摘抄他的評(píng)論制作語錄,你怎

么辦,是一個(gè)一個(gè)的手動(dòng)復(fù)制粘貼嗎?這種方法的確是可以的,如果你發(fā)現(xiàn)了

一條爆炸性新聞,你想把新聞底下的評(píng)論全部都收集下來并且分析,那這個(gè)時(shí)

候你又怎么辦,是一個(gè)一個(gè)的手動(dòng)復(fù)制粘貼嗎?拼手速?不太符合顯示,爆炸

性的新聞下評(píng)論肯定會(huì)有成千上萬條。再比如工作上需要獲取一個(gè)大量的數(shù)據(jù)

用來支撐實(shí)驗(yàn),難道到一條一條的去找嗎?

爬蟲可以解決這個(gè)問題,爬蟲技術(shù)主要可以幫助我們做兩類事情,一是數(shù)

據(jù)獲取需求,主要針對(duì)特定規(guī)則下大數(shù)據(jù)獲?。欢亲詣?dòng)化需求,主要應(yīng)用在

類似信息聚合、搜索等。大大提高了工作效率和質(zhì)量。

簡(jiǎn)而言之,爬蟲是一種檢測(cè)機(jī)器。其基本原則是模仿人類行為,瀏覽多個(gè)

網(wǎng)站,按下按鈕,研究數(shù)據(jù)或檢索這些信息。如果使用專業(yè)表達(dá)式,最簡(jiǎn)單的

爬行動(dòng)物是通過程序通過技術(shù)手段模擬人類的操作,在服務(wù)器上獲得大量數(shù)據(jù),

首先解釋您需要的信息,然后決定程序應(yīng)該做什么。我們可以接收在網(wǎng)站上標(biāo)

5

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

記的鏈接并繼續(xù)到下一頁(yè)。并且還可以將直接獲得的信息保存在場(chǎng)所或數(shù)據(jù)庫(kù)

中。當(dāng)然,這些是傳統(tǒng)意義上的爬蟲,通過挖掘匿名社區(qū)和收集所謂的極端評(píng)

論,可以提高效率。但在當(dāng)今的網(wǎng)絡(luò)爬蟲技術(shù)中,大師與大公司之間的游戲不

再局限于網(wǎng)絡(luò)方面,還涉及客戶端逆向和動(dòng)態(tài)調(diào)試分析。真正的攻擊和防御場(chǎng)

景以及爬蟲攻擊帶來的巨大好處遠(yuǎn)遠(yuǎn)超出了人們的想象。

爬蟲最基本的功能是抓取。我們已經(jīng)習(xí)慣于在HTTPS請(qǐng)求恢復(fù)數(shù)據(jù)并分析

我們需要的數(shù)據(jù)的過程,這一個(gè)過程也被稱為一次“抓取”。例如,在百度上

手動(dòng)搜索“張三”,這是HTTPS發(fā)送到百度服務(wù)器的請(qǐng)求。爬蟲的“抓取”是

模仿人類的行為。然而,它是由機(jī)器或程序批量量啟動(dòng)的,而不是手動(dòng)發(fā)送請(qǐng)

求。而我們經(jīng)常使用的百度,就是利用了這種爬蟲技術(shù),每天向多個(gè)網(wǎng)站發(fā)送

無數(shù)爬蟲,獲取它們的信息,然后排隊(duì)等待檢索。

科技是復(fù)雜的,網(wǎng)絡(luò)爬蟲技術(shù)技術(shù)的使用需要注意法律邊界。眾所周知的

是爬取以下三類數(shù)據(jù)是違法的,第一種是有著作權(quán)的數(shù)據(jù),這些數(shù)據(jù)是受著作

權(quán)法保護(hù)的;第二種是用戶的個(gè)人信息以及個(gè)人隱私數(shù)據(jù);第三種是一些APP

上面的用于評(píng)價(jià),這些數(shù)據(jù)雖然是用戶產(chǎn)生的,但是是APP應(yīng)用的核心競(jìng)爭(zhēng)力

主要來源,所以這些數(shù)據(jù)受不當(dāng)競(jìng)爭(zhēng)法的保護(hù)。爬蟲技術(shù)是一把雙刃劍,一個(gè)不

小心可能就會(huì)傷害到自己和他人,所以我們技術(shù)人員要懂法、守法。在法律允許

的范疇內(nèi)去編寫自己的腳本程序,不要一不小心半只腳踏進(jìn)犯罪的深淵。

有爬蟲技術(shù),那也一定存在反爬取的技術(shù)了。因此,為什么要反爬,答案是

顯而易見的。跟蹤器流量可能會(huì)增加服務(wù)器的負(fù)載。爬蟲的過度爬取將影響服

務(wù)的正常運(yùn)作,并造成收入損失。另一方面,一些基本數(shù)據(jù)的泄露可能會(huì)使數(shù)

據(jù)所有者缺乏競(jìng)爭(zhēng)力。

2.3.2文件存取技術(shù)

Python內(nèi)置txt模塊如圖2-1顯示:

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

6

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

2.3.3可視化技術(shù)

可視化是指利用計(jì)算機(jī)圖形和圖像處理技術(shù)將數(shù)據(jù)轉(zhuǎn)化為圖形或圖像,在

屏幕上顯示,然后進(jìn)行交互式處理的理論、方法和技術(shù)。我們當(dāng)獲取到的數(shù)據(jù)

是一串串冗長(zhǎng)的字符串,上面寫的一條條信息或許我們能夠看懂讀懂,但是當(dāng)它

成千上萬的時(shí)候我們短時(shí)間內(nèi)很得到我們想要的價(jià)值,我們需要進(jìn)行深入的了

解和分析。對(duì)這一坨枯燥而乏味的數(shù)據(jù)集進(jìn)行處理完畢后,我們就要導(dǎo)入需要的

第三方庫(kù)將數(shù)據(jù)合理的進(jìn)行判斷,決定使用什么樣的方式繪畫圖形才能最好、并

且直觀的表達(dá)出數(shù)據(jù)集的信息,讓人一看就能提取到有用的價(jià)值。

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

化、可視化分析。近些年來,這3個(gè)子領(lǐng)域出現(xiàn)了逐漸融合的趨勢(shì)。通常統(tǒng)稱

為“大數(shù)據(jù)可視化”??梢暬夹g(shù)在數(shù)據(jù)處理中扮演著重要角色,它們的作用

在于,將復(fù)雜的數(shù)據(jù)變得清晰直觀、易于分析,讓使用者能夠更加深入地理解

數(shù)據(jù)并做出精準(zhǔn)的決策。

本項(xiàng)目的數(shù)據(jù)可視化用到了Matplotlib庫(kù),Matplotlib是一個(gè)Python的

數(shù)據(jù)可視化庫(kù),是Python中最流行的數(shù)據(jù)可視化庫(kù)之一,可以生成各種圖表,

包括折線圖、散點(diǎn)圖、直方圖、餅圖、詞云圖等等,有助于使用人員向其他人

展示他們的數(shù)據(jù)發(fā)現(xiàn)和分析結(jié)果,更加直觀地了解數(shù)據(jù)分布、趨勢(shì)。繪制漂亮

的圖表也可以提高數(shù)據(jù)分析結(jié)果被理解和接受的概率。Matplotlib在數(shù)據(jù)可視

化中是不可或缺的,使用它可以更加方便地進(jìn)行數(shù)據(jù)分析和可視化。

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

3.1采集頁(yè)面分析

我們首先通過谷歌瀏覽器搜索美食杰網(wǎng)站的官方網(wǎng)頁(yè),然后找到東北菜菜

肴目錄集頁(yè)面觀察圖3-1,其中URL為:/caixi/dongbeicai/

然后點(diǎn)擊頁(yè)面下方的分頁(yè)按鈕,同時(shí)觀察URL,發(fā)現(xiàn)URL有變化。

7

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

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

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

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

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

段,分析這是個(gè)什么請(qǐng)求,發(fā)現(xiàn)這個(gè)是一個(gè)GET請(qǐng)求,那我們可以直接在添加請(qǐng)

求頭后直接爬取該網(wǎng)站。

通過觀察發(fā)現(xiàn)該網(wǎng)站提供了各菜肴的詳細(xì)地址,我們將所有地址采集下來

進(jìn)行第二次爬取即可獲得所有菜肴的詳細(xì)信息,如圖3-3。

8

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

圖3-3二級(jí)網(wǎng)址圖

3.2字段分析

打開網(wǎng)頁(yè)的選擇欄,然后將選擇欄目定位到菜肴信息集中的位置,也就是定

位到所需數(shù)據(jù)所在的位置,然后跳出開發(fā)者工具頁(yè)面刷新一下頁(yè)面再進(jìn)入,點(diǎn)擊

開發(fā)者工具界面上方的網(wǎng)頁(yè)元素Elements按鈕,如圖3-4,可以看到我們需要的

所有的數(shù)據(jù)信息。并且通get方法來獲得響應(yīng)的數(shù)據(jù),并且將數(shù)據(jù)儲(chǔ)存為TXT

格式的文件。

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

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

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

9

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

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

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

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

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

importrequests

fromlxmlimportetree

importre

headers={

'User-Agent':'User-Agent:Mozilla/5.0(WindowsNT6.1)AppleWebKit/537.36(KHTML,

likeGecko)Chrome/63.0.3239.132Safari/537.36'

}

#東北菜網(wǎng)頁(yè)

dongbeicai_urls=['/caixi/dongbeicai/{}'.format(i)foriinrange(1,26)]

#獲取所有菜譜地址

defget_caipu_urls(url):

data=requests.get(url,headers=headers).text

urls=re.findall(r'<ahref="(.*?)"class="list_s2_item_img"style=.*?</a>',data)

returnurls

#獲取菜譜信息

defget_info():

foruincaipu_urls:

try:

data=requests.get(u,headers=headers).text

html=etree.HTML(data)

caiming=html.xpath('//*[@id="app"]/div[1]/div/div[2]/h1/text()')[0]

zuozhe=html.xpath('//*[@id="app"]/div[1]/div/div[2]/span/a/text()')[0]

shoucang=re.search(r'</a>·(.*?)收藏',data,re.DOTALL).group(1)

liulan=re.search(r'收藏·(.*?)瀏覽</span>',data,re.DOTALL).group(1)

gongyi=

html.xpath('//*[@id="app"]/div[1]/div/div[2]/div[1]/div[1]/strong/text()')[0]

kouwei=

html.xpath('//*[@id="app"]/div[1]/div/div[2]/div[1]/div[2]/strong/text()')[0]

haoshi=

html.xpath('//*[@id="app"]/div[1]/div/div[2]/div[1]/div[3]/strong/text()')[0]

nandu=

10

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

html.xpath('//*[@id="app"]/div[1]/div/div[2]/div[1]/div[4]/strong/text()')[0]

#將所有數(shù)據(jù)保存到列表中

caipu_info.append([caiming,zuozhe,shoucang,liulan,gongyi,

kouwei,haoshi,nandu])

except:

print('菜譜網(wǎng)址{}數(shù)據(jù)缺失'.format(u))

#break

#將獲取到的數(shù)據(jù)添加到文件中

defsave_txt(txt_name):

withopen(txt_name,'w+',encoding='utf-8')asf1:

foriincaipu_info:

forjini:

ifj==i[-1]:

f1.write(j+'\n')

else:

f1.write(j+'\t')

if__name__=='__main__':

caipu_urls=[]

caipu_info=[['caiming','zuozhe','shoucang','liulan','gongyi','kouwei','haoshi','nandu']]

foriinrange(len(dongbeicai_urls)):

caipu_urls+=get_caipu_urls(dongbeicai_urls[i])

#break

#print(caipu_urls)

get_info()

save_txt('dongbeicai_data.txt')

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

數(shù)據(jù)清洗與處理是大數(shù)據(jù)下的產(chǎn)物。顧名思義,數(shù)據(jù)清洗,也稱為數(shù)據(jù)清

理,一般來說,數(shù)據(jù)清理是指識(shí)別和替換不完整、不準(zhǔn)確、不相關(guān)或有問題的

數(shù)據(jù)和記錄。我們通過網(wǎng)絡(luò)爬蟲技術(shù)下獲取大量的數(shù)據(jù),在這些數(shù)據(jù)中我們會(huì)

得到一些缺失值、不準(zhǔn)確、不完整和不相關(guān)等有問題的數(shù)據(jù)和記錄。為了讓數(shù)

據(jù)變得更加完整和有價(jià)值,我們通常會(huì)使用數(shù)據(jù)清洗將有問題的數(shù)據(jù)去除掉或

者糾正,將符合我們要求的數(shù)據(jù)保留。

本畢業(yè)設(shè)計(jì)中我們需要將爬下來的數(shù)據(jù)和網(wǎng)頁(yè)原數(shù)據(jù)進(jìn)行比對(duì),并且檢查

是否出現(xiàn)空值、錯(cuò)值,還有數(shù)據(jù)的位置是否正確。根據(jù)不同的需求我們要對(duì)數(shù)據(jù)

11

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

進(jìn)行不同的處理。

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

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

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

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

要的數(shù)據(jù),然后整理為原網(wǎng)頁(yè)格式存入txt文件中,留存后續(xù)作為統(tǒng)計(jì)分析、可

視化使用。

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

12

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

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

為了防止數(shù)據(jù)的丟失,我們都會(huì)將數(shù)據(jù)進(jìn)行儲(chǔ)存?zhèn)浞荩寯?shù)據(jù)以某種格式

記錄在計(jì)算機(jī)內(nèi)部或者外部?jī)?chǔ)存介質(zhì)上。數(shù)據(jù)儲(chǔ)存的方法有很多種,常見得可以

直接用記事本格式儲(chǔ)存(txt),或者直接用其他文件的形式儲(chǔ)存csv、excel、

json,以及比較特殊的數(shù)據(jù)庫(kù),本畢業(yè)設(shè)計(jì)數(shù)據(jù)儲(chǔ)存我們用到的是txt、MySQL。

如圖4-3和圖4-4所示:

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

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

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

創(chuàng)建數(shù)據(jù)庫(kù)。

圖4-5創(chuàng)建數(shù)據(jù)庫(kù)MySQL頁(yè)面圖

創(chuàng)建數(shù)據(jù)表。

13

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

圖4-6創(chuàng)建數(shù)據(jù)表MySQL頁(yè)面圖

導(dǎo)入本地txt文件數(shù)據(jù)。

圖4-7導(dǎo)入本地文件MySQL頁(yè)面圖

驗(yàn)證存入數(shù)據(jù)是否正確。

圖4-4驗(yàn)證存入數(shù)據(jù)是否正確MySQL頁(yè)面圖

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

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

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

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

14

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

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

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

5.2.1依據(jù)菜譜工藝進(jìn)行統(tǒng)計(jì)與分析

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

從圖5-3中可以得知在烹飪技術(shù)方面,發(fā)布者更青睞于燉、炒和煮以及燒

這樣子的工藝做法,用戶更多的關(guān)于原始加工和其他加工方法的作品,這些作

品現(xiàn)在可能與人們?nèi)找嫣岣叩慕】狄庾R(shí)有關(guān)。相反腌、拌、泡這樣讓食物溫度

較低的工藝做法受少數(shù)人群喜愛。普通生食和水加工食品比用油加工食品更健

康。選擇水處理和油處理將降低美食食譜發(fā)布者成為非常受歡迎的視頻作者的

可能性。眾所周知,用油加工的東西的烹飪方法并不特別健康,對(duì)于烹飪初學(xué)

者來說,烘焙和烘焙操作也有一定的風(fēng)險(xiǎn)。簡(jiǎn)單易學(xué)的生菜烹飪方法,將更好

地滿足需求人群對(duì)食品生產(chǎn)的期望。

美食網(wǎng)站的發(fā)布者據(jù)此可以調(diào)整自己發(fā)布作品的烹飪方式從而提高自身關(guān)

注度,同時(shí)樹立公司健康形象,在快速的經(jīng)濟(jì)增長(zhǎng)的形式下,對(duì)于美食公司而

言,公司的品牌知名度和形象至關(guān)重要。

15

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

5.2.2依據(jù)菜譜難度進(jìn)行統(tǒng)計(jì)與分析

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

從圖5-4中可以得知在菜譜難度方面,大部分的的視頻制作者更喜歡發(fā)布

難度較低的食譜,而大神級(jí)別的作者更喜歡發(fā)布中高難度的食譜。菜肴的難度

在一定程度上反映了發(fā)布者的烹飪技能,這表明烹飪技能高的發(fā)布者更有可能

吸引粉絲。為了擴(kuò)大公司的業(yè)務(wù)規(guī)模,提高銷售業(yè)績(jī),美食公司將充分利用現(xiàn)

代網(wǎng)絡(luò)技術(shù)突破地理空間的限制,讓任何想吃東北菜的人都能及時(shí)吃到東北菜。

讓視頻作者通過這種方式吸引更多全國(guó)各地粉絲,可以促使該公司的業(yè)務(wù)范圍

擴(kuò)大到全國(guó)各地,而不僅僅是一些城市。

16

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

5.2.3依據(jù)菜譜收藏?cái)?shù)進(jìn)行統(tǒng)計(jì)與分析

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

從圖5-5可以得知東北菜系中前十的收藏量中有兩個(gè)烤冷面,分別是收藏量

第一的東北烤冷面和收藏量第十的自制烤冷面,作品的熱度在一定程度上能夠

代表人們對(duì)作品的認(rèn)可程度,可以很大程度的促進(jìn)視頻發(fā)布者的信心,以及更

多食譜創(chuàng)作發(fā)布,增加該網(wǎng)站的瀏覽量擴(kuò)大知名度。

收藏量更多標(biāo)志著更受大眾的喜歡,如今都是短視頻時(shí)代,也許會(huì)轉(zhuǎn)發(fā)給

親朋好友,然后增加了該網(wǎng)站的到訪量和忠實(shí)受眾。

5.3綜述

綜上,隨著互聯(lián)網(wǎng)的發(fā)展食品制作等領(lǐng)域的價(jià)值得到了充分的探索。告別了

過去簡(jiǎn)單的圖形顯示模式,將食譜與短片相結(jié)合的應(yīng)用已成為當(dāng)前發(fā)展的新熱

點(diǎn)。隨著人們健康意識(shí)的提高,人們?cè)絹碓疥P(guān)注自己的健康飲食,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論