版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 海南種植轉(zhuǎn)讓合同范例
- 派遣合同范例 醫(yī)院
- danbao借款合同范例
- 合作合同范例國(guó)家
- 活動(dòng)合同范例
- 簽項(xiàng)目合同范例
- 商務(wù)會(huì)議合同范例
- 工程人工費(fèi)合同范例
- 銅仁學(xué)院《葡萄與葡萄酒》2023-2024學(xué)年第一學(xué)期期末試卷
- 銅陵學(xué)院《設(shè)備安裝工程實(shí)訓(xùn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 人教版數(shù)學(xué)三年級(jí)上冊(cè)分?jǐn)?shù)的初步認(rèn)識(shí)分?jǐn)?shù)的初步認(rèn)識(shí)-課件16
- 選必中第一單元大單元教學(xué)設(shè)計(jì)
- GB/T 33322-2016橡膠增塑劑芳香基礦物油
- GB/T 23988-2009涂料耐磨性測(cè)定落砂法
- GB/T 1962.2-2001注射器、注射針及其他醫(yī)療器械6%(魯爾)圓錐接頭第2部分:鎖定接頭
- GB/T 15905-1995硫化橡膠濕熱老化試驗(yàn)方法
- 中央空調(diào)空調(diào)年度維保報(bào)價(jià)單
- (新平臺(tái))國(guó)家開放大學(xué)《工程數(shù)學(xué)(本)》形成性考核作業(yè)1-5參考答案
- ommaya囊的護(hù)理教學(xué)課件
- 統(tǒng)計(jì)與概率的教材梳理講稿
- 幼兒園幼兒心理健康檔案
評(píng)論
0/150
提交評(píng)論