基于Python的1點(diǎn)點(diǎn)連鎖店全國店鋪信息分析與可視化_第1頁
基于Python的1點(diǎn)點(diǎn)連鎖店全國店鋪信息分析與可視化_第2頁
基于Python的1點(diǎn)點(diǎn)連鎖店全國店鋪信息分析與可視化_第3頁
基于Python的1點(diǎn)點(diǎn)連鎖店全國店鋪信息分析與可視化_第4頁
基于Python的1點(diǎn)點(diǎn)連鎖店全國店鋪信息分析與可視化_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

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

目錄

1引言1

1.1項(xiàng)目背景1

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

1.2.1Python簡介2

1.2.2MySQL簡介2

1.2.3Jupyternotebook簡介2

1.2.4Python第三方庫簡介3

2需求分析4

2.1可行性需求分析4

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

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

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

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

2.3.3可視化技術(shù)6

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

3.1采集頁面分析6

3.2字段分析7

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

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

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

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

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

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

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

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

5.2.1依據(jù)地址對(duì)全國店鋪分布進(jìn)行統(tǒng)計(jì)分析15

5.2.2依據(jù)地址對(duì)店鋪分布TOP5進(jìn)行統(tǒng)計(jì)分析16

I

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

5.2.3依據(jù)奶茶推薦指數(shù)進(jìn)行統(tǒng)計(jì)分析17

5.2.4依據(jù)地址對(duì)居住城市的店鋪進(jìn)行統(tǒng)計(jì)分析18

5.3綜述19

6小結(jié)19

參考資料21

II

基于Python的1點(diǎn)點(diǎn)連鎖店全國店鋪信息分析與可

視化

1引言

時(shí)光匆匆而去,我們的祖國從站起來到富起來再到強(qiáng)起來經(jīng)歷了一個(gè)偉大

的歷史性的跨越,如今我們已經(jīng)進(jìn)入了大數(shù)據(jù)時(shí)代,科學(xué)技術(shù)已經(jīng)到達(dá)了飛速

發(fā)展的階段,未來的世界將會(huì)被大數(shù)據(jù)覆蓋,百年未有之大變局,成為了我們這

一代青年人可以抓住的機(jī)遇?;ヂ?lián)網(wǎng)的發(fā)展給如今的各行各業(yè)帶來機(jī)會(huì),讓各

種技術(shù)隨著不斷的需求而產(chǎn)生多種行業(yè),如雨后春筍一般開始萌芽。大數(shù)據(jù)、云

計(jì)算、人工智能等技術(shù)的發(fā)展給了許多人從業(yè)的機(jī)會(huì),同時(shí)給人民群眾也提供

了便利。而廣大人民群眾日常消費(fèi)所產(chǎn)生的數(shù)據(jù)也讓了很多行業(yè)看到了發(fā)展的

機(jī)會(huì),同時(shí)也給我們這些大數(shù)據(jù)技術(shù)從業(yè)者提供了海量的數(shù)據(jù)源頭,讓我們有數(shù)

據(jù)去學(xué)習(xí)和研究,然后回饋人民群眾。

購物、出行、住宿、醫(yī)療等方面所產(chǎn)生的海量數(shù)據(jù),讓大數(shù)據(jù)技術(shù)從業(yè)者

一只腳跨入了信息革命,逐漸進(jìn)入了一個(gè)被數(shù)據(jù)淹沒的時(shí)代。海量數(shù)據(jù)中隱藏著

的秘密等待著大數(shù)據(jù)技術(shù)從業(yè)者去挖掘和發(fā)現(xiàn)。數(shù)據(jù)科學(xué)和大數(shù)據(jù)技術(shù)也成為

目前計(jì)算機(jī)行業(yè)中的一員,它的未來發(fā)展前景很廣闊!

1.1項(xiàng)目背景

全國連鎖店鋪的發(fā)展依靠的不僅僅是廣大人民群眾,數(shù)據(jù)信息也是發(fā)展連

鎖店鋪必不可少的。

對(duì)于連鎖店鋪的總店鋪而言,想要發(fā)展其分支,不僅僅是靠自己,也可以

讓有想法的人們?nèi)ゼ用恕6蠹蚁胍用说赇伨托枰チ私馄涞貐^(qū)的發(fā)展和已

經(jīng)有了多少家店鋪以及行業(yè)前景。如何去了解呢?我們需要登錄所需要加盟的

連鎖店的官方網(wǎng)站,查看門店據(jù)點(diǎn)以及其他相關(guān)資料。門店據(jù)點(diǎn)的數(shù)據(jù)有很多,

需要我們使用python網(wǎng)絡(luò)爬蟲技術(shù)對(duì)網(wǎng)頁進(jìn)行解析批量獲取我們需要的資料。

我的項(xiàng)目就是對(duì)全國連鎖店鋪進(jìn)行分析與可視化,首先爬取連鎖店鋪數(shù)據(jù)

信息,其次對(duì)爬取下來的數(shù)據(jù)進(jìn)行預(yù)處理、分析、存儲(chǔ)、最后可視化。錯(cuò)誤的

數(shù)據(jù)經(jīng)過清洗、分析以及可視化后,能夠一目了然的觀察出結(jié)果,最后做出正確

的決策。

1

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

1.2.1Python簡介

1989年,荷蘭人GuidoVanRossum發(fā)明了Python并于1991正式發(fā)行。

Python語言作為一種高級(jí)程序設(shè)計(jì)語言,既面向過程又面向?qū)ο螅鼡碛?/p>

的高級(jí)數(shù)據(jù)結(jié)構(gòu)、動(dòng)態(tài)類型、解釋型語言促使其成為多數(shù)平臺(tái)上編寫腳本和快

速開發(fā)應(yīng)用的編程語言,具有簡單易學(xué)、免費(fèi)開源、可移植、可嵌入等特點(diǎn)[1]。

Python是一門動(dòng)態(tài)的、跨平臺(tái)的、面向?qū)ο蟮囊约敖忉屝偷挠?jì)算機(jī)腳本語

言,由于其代碼規(guī)范簡潔、關(guān)鍵字相對(duì)較少且說明文檔很簡單,容易上手,因

此也被稱為可執(zhí)行的偽代碼。它可以使人們只關(guān)心完成什么樣的工作任務(wù),而

不是糾結(jié)于語法。它能夠?qū)⒂闷渌Z言制作的各種模塊很輕松地聯(lián)結(jié)在一起,

常被昵稱為膠水語言,擴(kuò)展性很強(qiáng),可以調(diào)用C和C++等編寫的程序,也可以在

其他程序中使用,或?qū)σ恍┸浖M(jìn)行二次開發(fā)[2]。

Python是開源的,它擁有非常多優(yōu)秀的庫,可以用于數(shù)據(jù)分析等。更重要

的是,Python與開源大數(shù)據(jù)平臺(tái)Hadoop具有很好的兼容性[2]。

1.2.2MySQL簡介

MySQL是一款面向公眾的、免費(fèi)的、開源的數(shù)據(jù)庫,由于使用MySQL會(huì)節(jié)約

大量成本,以及它的高效性,便捷性,越來越多的創(chuàng)業(yè)型的中小型的公司開始

選擇MySQL作為公司架構(gòu)的數(shù)據(jù)庫[3]。

MySQL數(shù)據(jù)庫最開始是瑞典MySQLAB公司開發(fā)的,后被Sun公司收購,最

后Sun公司又被Oracle公司收購,所以MySQL數(shù)據(jù)庫如今屬于Oracle公司。

MySQL數(shù)據(jù)庫的圖片設(shè)計(jì)是一個(gè)小海豚,它代表海量數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫中,

MySQL數(shù)據(jù)庫的增刪改查四大功能讓我們獲取數(shù)據(jù)更加的方便。面對(duì)海量數(shù)據(jù)的

存儲(chǔ),它可以確保數(shù)據(jù)的高效性和安全性。它可以跨平臺(tái)支持多種操作系統(tǒng),

如Linux系統(tǒng)、Windows系統(tǒng),使用范圍廣;采用多線程編程,在提供服務(wù)的同

時(shí),又不會(huì)過多的占用資源,快速高效;為多種編程語言提供了API接口,覆

蓋面廣;優(yōu)化了SQL語言的查詢算法,使得查詢效率高;成本低,對(duì)于學(xué)生來

說可以使用免費(fèi)的社區(qū)版本,對(duì)于一些企業(yè)來說可以購買企業(yè)版,但是企業(yè)版

出現(xiàn)問題是有著MySQL官方服務(wù)支持的,對(duì)于技術(shù)工作者提供了很大的便利。

1.2.3Jupyternotebook簡介

Jupyternotebook是基于網(wǎng)頁專門用于交互式計(jì)算的應(yīng)用程序。其可被應(yīng)

2

用于全過程計(jì)算:開發(fā)、文檔的編寫、代碼的運(yùn)行以及結(jié)果的展示。Jupyter

notebook的打開形式是網(wǎng)頁,它是結(jié)合瀏覽器打開網(wǎng)頁頁面,在網(wǎng)頁頁面上進(jìn)

行代碼的書寫和運(yùn)行,一個(gè)方框只能輸出一個(gè)代碼結(jié)果,在一個(gè)方框里如果寫

了兩種需要輸出的代碼,最終結(jié)果顯示的是最后一行代碼的輸出結(jié)果,代碼結(jié)

果輸出在方框下面。Jupyternotebook不僅可以進(jìn)行代碼的書寫,還可以對(duì)數(shù)

據(jù)進(jìn)行挖掘、清洗、分析、以及可視化,在大數(shù)據(jù)方面應(yīng)用的非常廣泛,可以

被用來當(dāng)作數(shù)據(jù)處理等一系列的工具。

使用Jupyternotebook的前提安裝了python,或者直接安裝Anaconda,因

為Anaconda的版本中已經(jīng)自帶了Jupyternotebook以及python相關(guān)的依賴包。

Jupyternotebook的打開方式可以通過命令提示符直接輸入Jupyternotebook,

或者點(diǎn)開Anaconda找到其下的Jupyternotebook。

1.2.4Python第三方庫簡介

Requests:requests庫是我認(rèn)為最好用的網(wǎng)絡(luò)爬蟲功能庫,它基于urllib,

是一個(gè)原生的HTTP庫,它相對(duì)于urllib3來說,使用起來更加簡易,Python第三

方庫在使用前都需要使用pip進(jìn)行安裝。

Lxml:lxml庫中的etree模塊獲取網(wǎng)頁數(shù)據(jù),結(jié)合Xpath解析網(wǎng)頁數(shù)據(jù)。

Xpath:Xpath最初是用來搜索xml文檔,但也可以用來搜索html網(wǎng)頁,

Xpath使用標(biāo)簽名對(duì)節(jié)點(diǎn)進(jìn)行定位,可以獲取節(jié)點(diǎn)下的所有數(shù)據(jù),如文本、鏈接

等。

Csv:csv是一種文件格式,它可以用記事本或者excel表格打開,是python

中的內(nèi)置模塊,它可以讀取文件也可以寫入文件,和json、mysql有著相似之

處。

Pandas:對(duì)保存的csv文件中的數(shù)據(jù)進(jìn)行清洗,查找出空值、缺失值、以

及錯(cuò)誤值,去除臟數(shù)據(jù),對(duì)去除好的數(shù)據(jù)重新保存csv文件。

Matplotlib:matplotlib庫是python中用于可視化最常見和最常用的庫

之一,語言使用也非常的簡易,繪制一些基本的直方圖、條形圖、餅圖、折線

圖等。

Pyechart:pyechart庫是python中另一種最常見以及最常用的可視化庫

之一,它相對(duì)于matplotlib庫而言,語言比較復(fù)雜,但是對(duì)最大值、最小值以

及平均值這些數(shù)據(jù)的展示比matplotlib的功能更多。

3

2需求分析

2.1可行性需求分析

1、技術(shù)可行性

Python是一種廣泛使用的高級(jí)編程語言,具備完全自動(dòng)化處理數(shù)據(jù)的能力,

可用于解決許多領(lǐng)域的數(shù)據(jù)分析和處理問題[4]。本次項(xiàng)目主要使用Python語言

編寫程序來完成數(shù)據(jù)的爬取、數(shù)據(jù)的存儲(chǔ)、數(shù)據(jù)的清洗、數(shù)據(jù)的分析以及數(shù)據(jù)

的可視化。在數(shù)據(jù)爬取的時(shí)候一開始使用的是BeautifulSoup庫,在使用過程

中發(fā)現(xiàn)它并不能理想的讓我獲取到想要的數(shù)據(jù),最后改用lxml庫的etree模塊

結(jié)合xpath獲取數(shù)據(jù)。首先通過循環(huán)對(duì)多個(gè)頁面數(shù)據(jù)進(jìn)行獲取,對(duì)需要爬取的

數(shù)據(jù)進(jìn)行定位分析,找到其相同性,其次將爬取出來的數(shù)據(jù)以csv文件形式儲(chǔ)

存起來,為后續(xù)數(shù)據(jù)清洗、數(shù)據(jù)分析和數(shù)據(jù)可視化作基礎(chǔ)。最后我們將清洗好后

的數(shù)據(jù)存入MySQL數(shù)據(jù)庫中做永久性的儲(chǔ)存。

上述為此次項(xiàng)目的技術(shù)可行性,我也會(huì)在后續(xù)的工作中將所有步驟的實(shí)現(xiàn)

到位,保證數(shù)據(jù)的準(zhǔn)確性和可用性。

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

全國連鎖店鋪的發(fā)展日趨增長,滲透廣大人民群眾的生活。在我們的身邊

就能看到許多,如本次項(xiàng)目的奶茶店1點(diǎn)點(diǎn),以及日常所看到步步高超市、愛

依服女裝店、維也納酒店、瑞幸咖啡等。連鎖店鋪的發(fā)展讓人民群眾不需要只

因?yàn)橄胍ヒ粋€(gè)店鋪,而特意跑很遠(yuǎn)過來吃一頓飯、買一樣?xùn)|西或者是喝一杯

奶茶。它的發(fā)展給人民群眾的生活帶來了方便,也給國家GDP的增長做出了貢

獻(xiàn)。

本次項(xiàng)目通過采集1點(diǎn)點(diǎn)奶茶店的數(shù)據(jù),來分析我這個(gè)品牌的奶茶店在全

中國地區(qū)上的分布。我們也將從全國地區(qū)店鋪分布、店鋪分布TOP5、以及我本

人所居住城市店鋪分布等方面對(duì)其進(jìn)行深度分析,分析出的信息可視化后根據(jù)

結(jié)果得出結(jié)論,讓想要加盟此奶茶店鋪的人們進(jìn)行使用。

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

本次項(xiàng)目采集的數(shù)據(jù)來源是1點(diǎn)點(diǎn)奶茶店官方網(wǎng)站,首先使用網(wǎng)絡(luò)爬蟲技

術(shù)爬取1點(diǎn)點(diǎn)奶茶店所有店鋪的數(shù)據(jù)。將爬取下來的數(shù)據(jù)進(jìn)行預(yù)處理后得到

3161條數(shù)據(jù),檢查已經(jīng)儲(chǔ)存好的數(shù)據(jù),確保數(shù)據(jù)的有效性。

對(duì)1點(diǎn)點(diǎn)奶茶店網(wǎng)頁信息進(jìn)行分析,明確我們爬取的數(shù)據(jù)里包含門店名稱、

4

城市、電話、地址等字段信息,對(duì)原始數(shù)據(jù)進(jìn)行清洗后我們會(huì)對(duì)其清洗好的數(shù)據(jù)

進(jìn)行多個(gè)方面的分析。例如,從全國地區(qū)店鋪分布看出1點(diǎn)點(diǎn)奶茶店重點(diǎn)發(fā)展地

區(qū),在店鋪分布最多的TOP5當(dāng)中分析該省份或者市的店鋪分布圖,以及1點(diǎn)點(diǎn)

奶茶最受迎的飲品。

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

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

網(wǎng)頁中大量的數(shù)據(jù)使人們?cè)谧x取信息時(shí)感到疲憊和恐懼,驚人的數(shù)據(jù)量需

要消耗時(shí)間也很多,這時(shí)候就需要用到網(wǎng)絡(luò)爬蟲技術(shù)了。網(wǎng)絡(luò)爬蟲技術(shù)對(duì)大多

數(shù)的人們都有著極大的幫助。假如人們想要在一個(gè)地區(qū)買房,但對(duì)這個(gè)地區(qū)所

有房子銷售的了解少之又少,這時(shí)候使用網(wǎng)絡(luò)爬蟲不僅可以這個(gè)地區(qū)所有房子

銷售的情況,同時(shí)也能獲取到房子的價(jià)格以及人們對(duì)其的建議。

網(wǎng)絡(luò)爬蟲的存在已經(jīng)成為網(wǎng)絡(luò)信息時(shí)代一種常態(tài)。隨著大數(shù)據(jù)和人工智能

技術(shù)的出現(xiàn),網(wǎng)絡(luò)爬蟲也越來越規(guī)?;椭悄芑?,對(duì)網(wǎng)絡(luò)爬蟲的研究也要越來

越明晰且與時(shí)俱進(jìn)[5]。

在大數(shù)據(jù)時(shí)代下,網(wǎng)站的運(yùn)行面臨著越來越多的挑戰(zhàn),各類網(wǎng)絡(luò)爬蟲層出

不窮,唯有合理有效地應(yīng)用反爬蟲技術(shù),才能保證網(wǎng)站安全穩(wěn)定運(yùn)營,保障網(wǎng)

站用戶的訪問體驗(yàn)。而對(duì)于網(wǎng)絡(luò)爬蟲技術(shù)而言,了解和掌握網(wǎng)站的反爬蟲策略,

能促進(jìn)網(wǎng)絡(luò)爬蟲技術(shù)向成熟和穩(wěn)定的方向發(fā)展[6]。

爬蟲技術(shù)是一把雙刃劍,在我們自己便利獲取數(shù)據(jù)的同時(shí),也要遵守robots

協(xié)議,不能違法違規(guī),否則很容易造成不可挽回的傷害。所以作為技術(shù)工作者

一定要知法、懂法、守法,在法律允許的范圍內(nèi)去合理的使用使用爬蟲技術(shù),不

要讓自己成為一個(gè)犯罪者。

2.3.2文件存取技術(shù)

使用python內(nèi)置模塊csv來存儲(chǔ)數(shù)據(jù),以寫模式對(duì)數(shù)據(jù)進(jìn)行寫入,如果文

件不存在保存的路徑中,則創(chuàng)建文件;如果文件存在,則覆蓋原文件內(nèi)容。

如圖2-1顯示:

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

5

2.3.3可視化技術(shù)

數(shù)據(jù)可視化技術(shù)已經(jīng)成為最優(yōu)秀的數(shù)據(jù)信息處理手段之一,是用戶挖掘數(shù)

據(jù)信息背后價(jià)值的主要方式。通過信息圖標(biāo)的方式來滿足用戶獲取更多真實(shí)準(zhǔn)

確又有參考價(jià)值的數(shù)據(jù)信息,更好的解答用戶的困惑[7]。

本次項(xiàng)目是將得到的數(shù)據(jù)存儲(chǔ)為csv文件,通過讀取csv文件數(shù)據(jù)進(jìn)行可

視化,使用的是python的第三方庫matplotlib和pyechart去對(duì)數(shù)據(jù)進(jìn)行可視

化,matplotlib使用的是一些簡單的語句,可以繪制一些基本的直方圖、條形圖、

餅圖、折線圖等。而pyechart使用的語句較為復(fù)雜,但可以繪制一些復(fù)雜的圖

形,如詞云圖、漣漪圖、地理圖等。可視化技術(shù)所呈現(xiàn)出來的圖形能夠直觀的

表達(dá)出數(shù)據(jù),讓人一清二楚,快速的得出結(jié)果。

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

3.1采集頁面分析

首先我們利用谷歌瀏覽器搜索1點(diǎn)點(diǎn)奶茶官方網(wǎng)頁,其次找到門店據(jù)點(diǎn),點(diǎn)

擊進(jìn)入此頁面,觀察圖3-1,其中URL為:

/storelocations/,最后點(diǎn)擊頁面下方的下一頁

按鈕,同時(shí)觀察URL,發(fā)現(xiàn)URL主體網(wǎng)址無變化只有頁面數(shù)字變化,此時(shí)應(yīng)用到

python方法中的for循環(huán)解決頁面數(shù)字變化。

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

單擊鼠標(biāo)右鍵,點(diǎn)擊檢查,進(jìn)入開發(fā)者工具頁面,刷新頁面,如圖3-2。

6

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

首先刷新頁面,找到開發(fā)者工具上面的Headers字段,點(diǎn)擊該字段,找到

RequestMethod,發(fā)現(xiàn)這是一個(gè)GET請(qǐng)求,如圖3-3。

圖3-3Headers頁面

3.2字段分析

首先我們來到網(wǎng)頁面點(diǎn)擊需要爬取的數(shù)據(jù)行,相對(duì)應(yīng)在開發(fā)者工具頁面的

7

代碼中,由圖3-4我們可以看到一共是四個(gè)字段,分別是門店名稱、城市、電

話、據(jù)點(diǎn)地址,根據(jù)這一行數(shù)據(jù)顯示,發(fā)現(xiàn)每行的數(shù)據(jù)都在<tr>標(biāo)簽內(nèi),而每

個(gè)字段的數(shù)據(jù)也都在相同的標(biāo)簽名下,這樣就有利于我們快速高效的拿到數(shù)據(jù)。

圖3-4分析字段數(shù)據(jù)頁面

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

導(dǎo)入編程實(shí)現(xiàn)所需要的庫

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

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

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

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

importrequests

fromlxmlimportetree

importcsv

urls=

['/storelocations/?page={}'.format(i)for

8

iinrange(1,70,1)]

headers={'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)

AppleWebKit/537.36(KHTML,likeGecko)Chrome/Safari/537.36',

'Cookie':'PHPSESSID=ro5017mubpkmpk9v9d49juvpj1;

Hm_lvt_15ccddd43b88429b32701e105ef0bcf9=1674914350,1676007384;

Hm_lpvt_15ccddd43'

'b88429b32701e105ef0bcf9=1676013636',}

withopen('D:/data.csv','w',newline='',encoding='utf-8')asf:

filedname=['門店名稱','城市','電話','地址']

file_csv=csv.DictWriter(f,fieldnames=filedname)

file_csv.writeheader()

store_names=[]

citys=[]

telephone=[]

address=[]

forurlinurls:

res=requests.get(url,headers=headers)

text=res.content.decode('utf-8')

html=etree.HTML(text)

store_name=

html.xpath('/html/body/div[2]/div[3]/div/div[2]/table/tbody/tr/td[1]

/text()')

#門店名稱數(shù)據(jù)

foriinstore_name:

store_names.append(i)

city=

html.xpath('/html/body/div[2]/div[3]/div/div[2]/table/tbody/tr/td[2]

/text()')

#城市數(shù)據(jù)

foriincity:

citys.append(i)

phone=

9

html.xpath('/html/body/div[2]/div[3]/div/div[2]/table/tbody/tr/td[3]

/a/text()')

#電話數(shù)據(jù)

foriinphone:

telephone.append(i.strip())

addr=

html.xpath('/html/body/div[2]/div[3]/div/div[2]/table/tbody/tr/td[4]

/text()')

#地址數(shù)據(jù)

foriinaddr:

address.append(i)

foriinrange(0,len(telephone)):

file_csv.writerow(

{

"門店名稱":store_names[i],

"城市":citys[i],

"電話":telephone[i],

"地址":address[i]

}

)

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

在大數(shù)據(jù)時(shí)代的今天,數(shù)據(jù)的影響力越來越大,政府和企業(yè)通過分析數(shù)據(jù)

并根據(jù)結(jié)果指導(dǎo)決策,決定發(fā)展方向。由于在數(shù)據(jù)收集的過程中會(huì)產(chǎn)生各種各

樣的錯(cuò)誤,因此現(xiàn)實(shí)生活中的數(shù)據(jù)往往是存在問題的臟數(shù)據(jù),為了防止臟數(shù)據(jù)

造成的失誤、經(jīng)濟(jì)損失,提升數(shù)據(jù)質(zhì)量迫在眉睫,大數(shù)據(jù)時(shí)代對(duì)數(shù)據(jù)清洗技術(shù)

提出了更高的要求[8]。

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

使用jupyternotebook中的pandas庫中的read_csv方法將爬取下來的數(shù)

據(jù)進(jìn)行導(dǎo)入,通過pandas庫中的方法判斷是否存在空數(shù)據(jù),臟數(shù)據(jù)以及不正確

10

的數(shù)據(jù)。經(jīng)過與原來數(shù)據(jù)的比對(duì)和檢查,發(fā)現(xiàn)數(shù)據(jù)不存在缺失值,空值以及錯(cuò)誤

值。因此我們將清洗好的數(shù)據(jù)數(shù)據(jù)存入csv文件中,用于后面展示統(tǒng)計(jì)圖和可

視化使用。

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

保存數(shù)據(jù)的方法有很多種,常見的文件類的txt、csv、excel、json等,文

件類保存的都是數(shù)據(jù)體量小的。而大數(shù)據(jù)所存儲(chǔ)的數(shù)據(jù)都是龐大的,不可估計(jì)

的數(shù)據(jù),如果需要儲(chǔ)存數(shù)據(jù)量大的也有幾種:第一種是結(jié)構(gòu)化數(shù)據(jù),結(jié)構(gòu)化數(shù)

據(jù)又分為兩種,關(guān)系型數(shù)據(jù)庫,如Oracle、MySQL;非關(guān)系型數(shù)據(jù)庫,NoSQL中

以鍵值對(duì)形式儲(chǔ)存數(shù)據(jù)的Mongodb、Redis;第二種是非結(jié)構(gòu)化數(shù)據(jù)Hadoop系統(tǒng)。

本次項(xiàng)目我們用到的是文件類的csv和關(guān)系型數(shù)據(jù)庫MySQL對(duì)數(shù)據(jù)進(jìn)行存

儲(chǔ)。csv文件主要用于后續(xù)展示統(tǒng)計(jì)圖。首次創(chuàng)建一個(gè)csv文件,定義好需要存

入的字段名,本次需要存入的字段的數(shù)據(jù)為:門店名稱、城市、電話、地址,

通過for循環(huán)依次將數(shù)據(jù)寫入。MySQL用于對(duì)數(shù)據(jù)進(jìn)行永久性存儲(chǔ),可作副本。

首先創(chuàng)建數(shù)據(jù)庫并使用創(chuàng)建的數(shù)據(jù)庫,然后創(chuàng)建表,在數(shù)據(jù)庫中存儲(chǔ)的是五個(gè)

字段,增加一個(gè)id字段作為主鍵,方便數(shù)據(jù)的存入,最后將數(shù)據(jù)加載到創(chuàng)建好

的數(shù)據(jù)表中,一定要保證導(dǎo)入的文件數(shù)據(jù)的字符集編碼與數(shù)據(jù)庫設(shè)置的字符集

編碼一致,否則會(huì)出錯(cuò)。最后通過查看前十行數(shù)據(jù)判斷是否導(dǎo)入成功。

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

使用pandas庫中的read_csv方法導(dǎo)入數(shù)據(jù),如圖4-1所示。

11

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

判斷數(shù)據(jù)中是否存在空數(shù)據(jù),如圖4-2所示。

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

通過python內(nèi)置模塊csv中的方法對(duì)清洗后的數(shù)據(jù)進(jìn)行寫入,如圖4-3所

示。

12

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

創(chuàng)建數(shù)據(jù)庫store,設(shè)置字符集,使用store數(shù)據(jù)庫,如圖4-4所示。

圖4-4數(shù)據(jù)庫創(chuàng)建頁面

創(chuàng)建數(shù)據(jù)表shop,修改字符集,如圖4-5所示。

圖4-5數(shù)據(jù)表創(chuàng)建頁面

將本地datas.txt文件導(dǎo)入數(shù)據(jù)表shop中,如圖4-6所示。

圖4-6本地文件導(dǎo)入頁面

13

驗(yàn)證數(shù)據(jù)是否導(dǎo)入成功,查看前十行數(shù)據(jù),如圖4-7所示。

圖4-7數(shù)據(jù)導(dǎo)入成功頁面

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

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

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

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

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

14

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

5.2.1依據(jù)地址對(duì)全國店鋪分布進(jìn)行統(tǒng)計(jì)分析

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

對(duì)表格中地址字段取前兩個(gè)字符,按照省份對(duì)奶茶店鋪分布數(shù)量進(jìn)行匯總

統(tǒng)計(jì)。我國共有省份23個(gè),直轄市4個(gè),特別行政區(qū)2個(gè),自治區(qū)5個(gè)。而上

述如圖5-3所展示出的有19個(gè)省,4個(gè)直轄市,1個(gè)自治區(qū),這些數(shù)據(jù)是清洗

過后的數(shù)據(jù),能夠作為參考,但少數(shù)部分地區(qū)可能沒有統(tǒng)計(jì)到。

根據(jù)上述可視化圖形展示可以看出1點(diǎn)點(diǎn)奶茶店絕大多數(shù)分布在南方的沿

海地區(qū),而江蘇作為南北方交界處的沿海地區(qū)分布的店鋪數(shù)量是最多的,對(duì)應(yīng)

著我國對(duì)外開放呈現(xiàn)出“沿海開放城市--沿海經(jīng)濟(jì)開放區(qū)--內(nèi)陸”全方位、多

層次、寬領(lǐng)域的開放格局。而西北地區(qū)和青藏地區(qū)地廣人稀,1點(diǎn)點(diǎn)奶茶店幾乎

15

不開往這些地區(qū)。

根據(jù)此結(jié)果,人們想要加盟1點(diǎn)點(diǎn)奶茶店就需要慎重考慮一下了,是去發(fā)

展地區(qū)快但是奶茶店鋪數(shù)量多的地方,還是去發(fā)展地區(qū)慢卻奶茶店鋪數(shù)量少的

地方,或者折中選擇。一線城市人多機(jī)遇更多,而其他城市如果能正逢上發(fā)展

的上升階段,那就是再好不過的機(jī)會(huì)了。學(xué)會(huì)看到商機(jī),發(fā)現(xiàn)機(jī)遇是需要用心

去觀察的。

5.2.2依據(jù)地址對(duì)店鋪分布TOP5進(jìn)行統(tǒng)計(jì)分析

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

上述圖5-4為1點(diǎn)點(diǎn)奶茶店鋪分布TOP5,一共是四個(gè)省份,一個(gè)直轄市,

全部為沿海地區(qū)。四個(gè)省份當(dāng)中有兩個(gè)省份分布最多的店鋪是其省會(huì)城市,有

兩個(gè)不是其省會(huì)城市。

江蘇蘇州比江蘇省會(huì)城市南京的GDP貢獻(xiàn)值要高,深圳市作為經(jīng)濟(jì)特區(qū),

在發(fā)展上得到國家的大力支持,所以江蘇省和廣東省連鎖店鋪的分布也能反映

出經(jīng)濟(jì)發(fā)展。而其他兩個(gè)省份福建和浙江的店鋪分布都是省會(huì)城市遠(yuǎn)遠(yuǎn)超于其

他城市。而上海市最多的店鋪分布地區(qū)是浦東新區(qū)。

想要加盟沿海地區(qū)店鋪的可以根據(jù)上述可視化圖形所展示出的結(jié)果進(jìn)行加

盟,也可以撥打想要加盟地區(qū)的店鋪電話進(jìn)行了解。

16

5.2.3依據(jù)奶茶推薦指數(shù)進(jìn)行統(tǒng)計(jì)分析

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

從圖5-5中可以得知紅茶瑪奇朵、阿華田和可可芭蕾是最受歡迎的飲品。

奶茶推薦的數(shù)據(jù)是我在小紅書上找的50個(gè)博主,每個(gè)博主推薦的四種飲品,

共200條數(shù)據(jù),在數(shù)據(jù)查找的過程中,我發(fā)現(xiàn)大家更喜歡將奶茶與配料搭配在

一起,構(gòu)成新喝法。如玫瑰奶烏+冰淇淋+混珠+椰果+紅豆,會(huì)展現(xiàn)出花香+奶茶

香,清爽不甜膩;阿華田+冰淇淋+珍珠+少冰,絲滑濃郁,好喝不膩。

根據(jù)奶茶推薦指數(shù),想要加盟人員可以參照上述推薦指數(shù)來制定奶茶的熱

銷榜,不僅僅是想要加盟的人員,已經(jīng)加盟了的奶茶店也可以根據(jù)推薦指數(shù)來

購買奶茶的進(jìn)貨量,以及配料的選取。就我個(gè)人而言,我更愛抹茶一類的飲品。

17

5.2.4依據(jù)地址對(duì)居住城市的店鋪進(jìn)行統(tǒng)計(jì)分析

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

長沙市是我本人目前的居住地,在眾多城市多選取長沙市來作為其中一個(gè)

的參照,不僅僅是因?yàn)槭俏业木幼〉?,還有長沙作為一個(gè)熱門的網(wǎng)紅旅游城市,

其店鋪的分布也具有分析意義。

據(jù)最新數(shù)據(jù)統(tǒng)計(jì),2023年春節(jié)假期長沙市旅游人數(shù)達(dá)到278.94萬人次,實(shí)

現(xiàn)旅游收入29.69億元,網(wǎng)友戲稱“全國七億游客在長沙”。作為如此熱門旅

游城市的長沙,為何1點(diǎn)點(diǎn)奶茶店鋪的分布確算不上多呢。長沙最出名的奶茶

便是茶顏悅色,有大多數(shù)人來長沙便是想嘗嘗長沙特產(chǎn)之一的茶顏悅色,在長

沙五一廣場地段可以達(dá)到“五步一茶顏”的夸張說法,更有人說:“來長沙不

喝茶顏相當(dāng)于沒來”。同行競爭如此激烈,除開茶顏還有其他奶茶店,這便是

我認(rèn)為為什么長沙作為熱門的旅游城市,1點(diǎn)點(diǎn)奶茶店鋪卻并不多的原因。

從圖5-6可以看出1點(diǎn)點(diǎn)奶茶店在長沙主要分布在岳麓區(qū),而岳麓區(qū)有著

河西大學(xué)城、岳麓山以及橘子洲三大地區(qū),是人口分布密集之地。所以加盟連

鎖店鋪不僅需要考察地區(qū)的發(fā)展情況,還要看看地區(qū)的文化發(fā)展,以及人流量

的分布。

18

5.3綜述

綜上,1點(diǎn)點(diǎn)奶茶店總部坐落于上海市,通過對(duì)1點(diǎn)點(diǎn)奶茶店官方網(wǎng)站地址

數(shù)據(jù)的爬取及可視化后,我們得到店鋪數(shù)量分布最廣的地區(qū)為南部地區(qū),西北

地區(qū)及青藏地區(qū)分布數(shù)據(jù)最少,對(duì)應(yīng)著我國經(jīng)濟(jì)發(fā)展的現(xiàn)狀。店鋪的發(fā)展也要

根據(jù)大眾喜好進(jìn)行調(diào)理,總結(jié)店鋪每月銷售最多的飲品,根據(jù)幾個(gè)月的數(shù)據(jù)進(jìn)

行觀察,將熱銷飲品加入熱銷榜,根據(jù)熱銷榜購買食品材料,根據(jù)節(jié)假日或特

殊日子推出活動(dòng)及禮品,制造驚喜感,有利于店鋪的發(fā)展以及提高顧客的好感

度。想要加盟的人們也可以根據(jù)數(shù)據(jù)選擇想要加盟的地區(qū),觀察其地區(qū)的發(fā)展

情況以及撥打相關(guān)地區(qū)的電話,對(duì)店鋪進(jìn)行了解,所謂知己知彼,才能百戰(zhàn)不

殆。

6小結(jié)

時(shí)代在發(fā)展,社會(huì)在進(jìn)步。信息時(shí)代的到來,讓大數(shù)據(jù)的存在越來越顯著。

在廣大人民群眾的消費(fèi)下、隨便一個(gè)小舉動(dòng)都會(huì)帶來海量的數(shù)據(jù),隨著大數(shù)據(jù)技

術(shù)的發(fā)展,我們也進(jìn)入了一個(gè)數(shù)據(jù)化時(shí)代,海量數(shù)據(jù)的產(chǎn)生給各行各業(yè)的人們帶

來了巨大的機(jī)遇和發(fā)展,抓住機(jī)遇,是我們這一帶青年人發(fā)展的重點(diǎn)。

本次項(xiàng)目創(chuàng)作的開展還算順利,一開始對(duì)網(wǎng)站數(shù)據(jù)的爬取使用的是

BeautifulSoup,但是由于我對(duì)這個(gè)知識(shí)點(diǎn)的熟練度不算很高,最終改用Xpath

進(jìn)行定位數(shù)據(jù),網(wǎng)站數(shù)據(jù)簡單,也沒有反爬蟲手段,所以在爬取數(shù)據(jù)過程中沒

有受到阻攔。在對(duì)大量數(shù)據(jù)存儲(chǔ)的方面遇到了點(diǎn)困難,不知如何將數(shù)據(jù)一行一

行存入文件中,通過查找教學(xué)視頻,解決了這個(gè)問題,代碼的書寫還是相對(duì)于

簡單,最后存入csv文件中。數(shù)據(jù)的清洗我使用的是jupyternotebook技術(shù),

使用pandas庫讀取數(shù)據(jù),對(duì)數(shù)據(jù)去除空值、缺失值及

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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)論