版權(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項(xiàng)目背景1
1.2開發(fā)環(huán)境與工具2
1.2.1Python簡介2
1.2.2SQLite簡介2
1.2.3Pycharm簡介2
1.2.4Selenium爬蟲庫簡介2
1.2.5Pandas簡介3
1.2.6Matplotlib簡介3
2需求分析3
2.1可行性需求分析3
2.1.1技術(shù)可行性3
2.1.2項(xiàng)目可行性4
2.2采集目標(biāo)功能分析4
2.3關(guān)鍵技術(shù)分析5
2.3.1網(wǎng)絡(luò)爬蟲技術(shù)5
2.3.2數(shù)據(jù)存儲(chǔ)技術(shù)7
2.3.3可視化技術(shù)8
3數(shù)據(jù)采集9
3.1采集頁面分析9
3.2字段分析10
4數(shù)據(jù)清洗與處理12
4.1數(shù)據(jù)清洗12
4.2數(shù)據(jù)儲(chǔ)存13
5數(shù)據(jù)統(tǒng)計(jì)與分析14
5.1數(shù)據(jù)展示14
5.1.1統(tǒng)計(jì)每個(gè)星級(jí)酒店數(shù)量14
I
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
5.1.2統(tǒng)計(jì)每種類型酒店評(píng)分分布15
5.1.3統(tǒng)計(jì)每種酒店價(jià)格分布情況16
5.1.4按酒店類型統(tǒng)計(jì)評(píng)分與價(jià)格分布情況17
5.2綜述18
6小結(jié)18
參考資料19
II
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
基于Python的藝龍酒店網(wǎng)數(shù)據(jù)采集與分析
1引言
2020年開始,新冠肺炎疫情席卷世界,全球旅游業(yè)陷入停滯狀態(tài),中國旅
游業(yè)也遭受到了較為嚴(yán)重的打擊,人員流動(dòng)降低,旅游人數(shù)驟減,導(dǎo)致了旅游
行業(yè)收入降低。2022中國進(jìn)入常態(tài)化防控階段,2022年底,隨著疫情防控
“新十條”出臺(tái),旅游業(yè)逐步進(jìn)入恢復(fù)階段。旅游者對(duì)于旅游消費(fèi)需求仍然存
在,旅游業(yè)也需要消費(fèi)者增長收入,旅游業(yè)恰逢百年未有之變局。
2021年國務(wù)院印發(fā)“十四五”旅游業(yè)發(fā)展規(guī)劃的通知指出旅游成為小康社
會(huì)人民美好生活的剛性需求,旅游業(yè)發(fā)展仍處于重要戰(zhàn)略機(jī)遇期,擴(kuò)大內(nèi)需是
旅游業(yè)發(fā)展的重要任務(wù)。
互聯(lián)網(wǎng)信息技術(shù)的飛速發(fā)展將人類社會(huì)推向了新時(shí)代,深刻地改變了我們
的出行方式?,F(xiàn)如今,外出旅游已經(jīng)成為很多家庭和個(gè)人的假期安排。在互聯(lián)
網(wǎng)出現(xiàn)之前,如果我們想去一個(gè)地方旅游,需要在旅游目的地尋找合適的酒店
入住,現(xiàn)在只需要在網(wǎng)上提前預(yù)約即可。
1.1項(xiàng)目背景
對(duì)于消費(fèi)者來說,酒店住宿是遠(yuǎn)程旅游時(shí)必須要考慮的因素,異地酒店預(yù)
定會(huì)通過第三方平臺(tái)比如攜程程、藝龍、美團(tuán)等預(yù)定酒店,消費(fèi)者并不了解當(dāng)
地的酒店市場價(jià)格均價(jià),由于商家的營銷策略,部分商家會(huì)采用與實(shí)際描述不
符的圖片,低價(jià)格吸引消費(fèi)者,且受限第三方平臺(tái)推薦算法,有些酒店信息不
會(huì)出現(xiàn)在推薦列表里,會(huì)影響消費(fèi)者決策,消費(fèi)者需要對(duì)比每種星級(jí)酒店的平
均價(jià)格,對(duì)當(dāng)?shù)鼐频陜r(jià)格有基本了解之后,才能排除那些異常低價(jià)和異常高價(jià)
的酒店。
對(duì)于酒店方來說,不同時(shí)間的標(biāo)價(jià)策略也會(huì)影響客流量和收益,酒店方需
要對(duì)比同行之間的價(jià)格,來制定自己的標(biāo)價(jià)策略,因此也需要獲取同城酒店的
酒店數(shù)據(jù)用來分析決策。
因此這次設(shè)計(jì)的主要目標(biāo)是爬取藝龍酒店的信息。通過分析任意城市的酒
店價(jià)格分布情況,為消費(fèi)者和酒店方提供數(shù)據(jù)支持,為此首先要收集任意城市
的酒店城市、星級(jí)、價(jià)格等數(shù)據(jù),然后基于這些數(shù)據(jù)對(duì)數(shù)據(jù)進(jìn)行分析。
1
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
1.2開發(fā)環(huán)境與工具
1.2.1Python簡介
Python誕生于20世紀(jì)80年代末,由荷蘭的龜叔(GuidoRossum)創(chuàng)造。
在21世紀(jì)初Google在大量的項(xiàng)目業(yè)務(wù)上大規(guī)模的開始應(yīng)用Python,Python也
因此走進(jìn)大眾的視野,從而促使Python的發(fā)展。
隨著計(jì)算機(jī)技術(shù)的日新月異,2010年后移動(dòng)互聯(lián)網(wǎng)的普及。云計(jì)算、大數(shù)
據(jù)等信息技術(shù)興起,數(shù)據(jù)科學(xué)家需要借助計(jì)算機(jī)進(jìn)行分析時(shí)需要掌握一門簡單
易學(xué)的編程語言,應(yīng)用于大數(shù)據(jù)技術(shù)時(shí)代的數(shù)據(jù)獲取、清洗處理、可視化需
求,python在一眾語言中脫穎而出,成為數(shù)據(jù)分析的主流語言之一。再到后來
人工智能技術(shù)的崛起,AI領(lǐng)域使用了更多的Python技術(shù),用它作為機(jī)器學(xué)習(xí)、
關(guān)鍵算法的開發(fā)工具。并且Python入門難度相較于JAVA、C++等面向?qū)ο蟮恼Z
言而言更加簡單容易入門、所以它很快的便走進(jìn)了大眾的視野中。
現(xiàn)如今,人們用它開發(fā)簡單的小腳本用來做文件的自動(dòng)化處理或者開發(fā)一
些小網(wǎng)站、數(shù)據(jù)爬取和簡單數(shù)據(jù)分析。這也突出Python的特點(diǎn)就是易學(xué)、第
三方庫足夠豐富、并且免費(fèi)開源、支持跨多平臺(tái)且可移植性比較強(qiáng)。
1.2.2SQLite簡介
SQLite是一個(gè)輕型的數(shù)據(jù)庫,不需要任何服務(wù),也不需要任何配置的綠色數(shù)
據(jù)庫,是遵守ACID的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),包含在一個(gè)相對(duì)小的C庫中。實(shí)
現(xiàn)了自包含,無服務(wù)器,零配置,事務(wù)性的SQL數(shù)據(jù)庫引擎,同時(shí)也是在普及方面
的增長最快的數(shù)據(jù)庫引擎。
1.2.3Pycharm簡介
Pycharm是由JebBrains打造的一款PythonIDE,帶有一整套可以幫助用
戶使用Python語言開發(fā)時(shí)提高其效率的工具。具備一般IDE具備的功能,像調(diào)
試,代碼跳轉(zhuǎn),單元測試,版本控制等等。
1.2.4Selenium爬蟲庫簡介
selenium最初是一個(gè)自動(dòng)化測試工具,而爬蟲中使用它主要是為了解決
requests無法執(zhí)行javaScript代碼的問題。
Selenium可以驅(qū)動(dòng)瀏覽器執(zhí)行特定的操作,也就是完全模擬人類使用瀏覽
器操作,對(duì)比requests請求庫,在性能上有所下降,但是也屏蔽了復(fù)雜的通
2
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
信流程,比如登陸驗(yàn)證,數(shù)據(jù)加解密等繁瑣的操作,對(duì)于一些不方便爬取的網(wǎng)
頁有更好的適應(yīng)性。
1.2.5Pandas簡介
Pandas是Python核心數(shù)據(jù)分析庫之一,Pandas提供了快速、靈活、明
確的數(shù)據(jù)結(jié)構(gòu),旨在簡單、直觀地處理關(guān)系型、標(biāo)記型數(shù)據(jù)。Pandas集成了常
用的數(shù)據(jù)讀取、清洗、可視化工具,通過Pandas,可以很輕易地對(duì)各種數(shù)據(jù)進(jìn)
行分析處理,配合Matplotlib庫,可以實(shí)現(xiàn)數(shù)據(jù)讀取、清洗、處理、可視化
一站式解決方案。
1.2.6Matplotlib簡介
Matplotlib是Python用于數(shù)據(jù)可視化的庫,經(jīng)過迭代已經(jīng)可以成熟的對(duì)
Numpy和Pandas進(jìn)行兼容,使用起來方便而快捷。Seaborn等高級(jí)庫也是基于
Matplotlib實(shí)現(xiàn)。
2需求分析
2.1可行性需求分析
2.1.1技術(shù)可行性
針對(duì)藝龍酒店網(wǎng)的數(shù)據(jù)采集分析,首先要獲取酒店相關(guān)信息,并將爬出到
的數(shù)據(jù)保存到數(shù)據(jù)庫中,然后基于數(shù)據(jù)庫對(duì)數(shù)據(jù)進(jìn)行分析處理,并將結(jié)果可視
化。因此,在這次的項(xiàng)目中,主要要實(shí)現(xiàn)的工作有以下幾項(xiàng):爬取網(wǎng)頁數(shù)據(jù)、
保存爬取數(shù)據(jù)、數(shù)據(jù)聚合分析、數(shù)據(jù)可視化并基于此得出分析結(jié)論。
針對(duì)爬取網(wǎng)頁數(shù)據(jù),經(jīng)過調(diào)研,爬取網(wǎng)頁數(shù)據(jù)的方案大多數(shù)基于Python
開分,因此在這次的項(xiàng)目中也采用python作為開發(fā)語言。進(jìn)一步,基于
Python的網(wǎng)頁爬蟲框架主要有Scrapy、Crawley、PySpider、Selenium、
Request等。
由于藝龍酒店網(wǎng)站有設(shè)置一定的反爬策略,因此針對(duì)藝龍酒店爬取需要考
慮如何跳過反爬。在這次項(xiàng)目中先嘗試用傳統(tǒng)的request庫請求,分析請求參
數(shù)變化,然后模擬請求,如果無法分析反爬機(jī)制,則采用Selenium框架模擬
用戶打開瀏覽器,點(diǎn)擊網(wǎng)頁按鈕的方式實(shí)現(xiàn)功能。
由于網(wǎng)絡(luò)爬蟲是模擬對(duì)于網(wǎng)站的頻繁請求,對(duì)于網(wǎng)站來說會(huì)有壓力,但是
3
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
數(shù)據(jù)分析往往需要多次分析才能得到結(jié)論,因此需要將爬取的數(shù)據(jù)保存到數(shù)據(jù)
庫中,一次爬取,多次分析。
這次的項(xiàng)目中采用了SQLite3作為數(shù)據(jù)庫,對(duì)比Mysql等傳統(tǒng)的數(shù)據(jù)庫,
SQLite3更加輕量,無需獨(dú)立搭建服務(wù)端,而且也可以在不同應(yīng)用中快速遷
移、同時(shí)也可以對(duì)多個(gè)數(shù)據(jù)的聯(lián)合查詢。
對(duì)于保存好的SQLite3數(shù)據(jù),需要對(duì)數(shù)據(jù)進(jìn)行聚合分析,根據(jù)酒店的類
型、評(píng)分?jǐn)?shù)據(jù)和價(jià)格數(shù)據(jù),分析當(dāng)?shù)鼐频陜r(jià)格分布,可以對(duì)當(dāng)?shù)鼐频陜r(jià)格的合
理區(qū)間有大致的了解;分析當(dāng)?shù)鼐频甑脑u(píng)分分布,可以了解當(dāng)?shù)鼐频甑姆植迹?/p>
可以在酒店挑選時(shí)過濾掉評(píng)分異常的酒店;分析酒店價(jià)格與評(píng)分的分布情況,
分析價(jià)格與評(píng)分之間的分布,是否價(jià)格越高,服務(wù)越好。
一圖勝千言,數(shù)據(jù)可視化可以方便數(shù)據(jù)分析,python中數(shù)據(jù)可視化的方案
有很多,比如本地出圖的matplotlib、Web出圖的Django、第三方報(bào)表工具
Grafana等工具,都可以基于數(shù)據(jù)庫進(jìn)行可視化,此次項(xiàng)目中采用了
matplotlib作為工具。
基于數(shù)據(jù)圖表,對(duì)數(shù)據(jù)進(jìn)行分析,并得出一般性結(jié)論,此次項(xiàng)目中主要考
慮的指標(biāo)有按類型統(tǒng)計(jì)酒店數(shù)量、按類型統(tǒng)計(jì)酒店價(jià)格合理區(qū)間、按類型統(tǒng)計(jì)
酒店評(píng)分分布、按類型統(tǒng)計(jì)酒店價(jià)格與酒店分析價(jià)格與評(píng)分的分布關(guān)系。
2.1.2項(xiàng)目可行性
對(duì)于游客來說,需要對(duì)比每種星級(jí)酒店的平均價(jià)格,對(duì)當(dāng)?shù)鼐频陜r(jià)格有基
本了解之后,才能排除那些異常低價(jià)和異常高價(jià)的酒店,挑選性價(jià)比高的酒店
入住。
對(duì)于酒店方來說,不同時(shí)間的標(biāo)價(jià)策略也會(huì)影響客流量和收益,酒店方需
要對(duì)比同行之間的價(jià)格,來制定自己的標(biāo)價(jià)策略,因此也需要獲取同城酒店的
酒店數(shù)據(jù)用來分析決策,了解自己的價(jià)格在本地的價(jià)格。
因此這次的項(xiàng)目對(duì)于游客和酒店方來說,都具有一定的實(shí)用價(jià)值。此次項(xiàng)
目通過完成一個(gè)小型的數(shù)據(jù)爬取分析系統(tǒng),在短時(shí)間內(nèi)為用戶提供可靠的的價(jià)
格合理性判斷,可以為用戶在選擇酒店時(shí)作為參考。
2.2采集目標(biāo)功能分析
這次項(xiàng)目的數(shù)據(jù)集的來源是藝龍酒店網(wǎng)站,是通過Python爬取藝龍酒店所
有酒店的信息。數(shù)據(jù)清洗后共500條記錄,爬取完成后盡可能的檢查數(shù)據(jù)的準(zhǔn)
確性,確定爬取出來的數(shù)據(jù)無誤后存入SQLite數(shù)據(jù)庫中。
4
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
分析某城市的酒店價(jià)格,明確我們需要爬取的藥品參數(shù)有酒店名稱、酒店
星級(jí)、酒店地理位置、酒店價(jià)格、酒店評(píng)分等數(shù)據(jù),在對(duì)原始數(shù)據(jù)進(jìn)行預(yù)處理
后我們會(huì)對(duì)其數(shù)據(jù)進(jìn)行多個(gè)維度的分析。例如,從酒店價(jià)格和星級(jí)進(jìn)行分類統(tǒng)
計(jì),計(jì)算每種星級(jí)的酒店價(jià)格平均數(shù)、最大數(shù)和區(qū)間分布等。又或者想要得到
且評(píng)價(jià)人數(shù)較多,評(píng)分比較高的優(yōu)質(zhì)酒店信息等。
這次項(xiàng)目中以上海地區(qū)的酒店信息為例,通過藝龍酒店網(wǎng)站爬取酒店數(shù)
據(jù),然后基于酒店數(shù)據(jù),輸出上海地區(qū)酒店類型統(tǒng)計(jì)、按類別統(tǒng)計(jì)酒店的價(jià)格
合理區(qū)間,并分析酒店價(jià)格與酒店評(píng)分中是否存在某種關(guān)聯(lián)。
2.3關(guān)鍵技術(shù)分析
2.3.1網(wǎng)絡(luò)爬蟲技術(shù)
在此次項(xiàng)目中為了爬取數(shù)據(jù)首先需要需要檢查藝龍酒店網(wǎng)站數(shù)據(jù),分析如
何從藝龍酒店網(wǎng)站中的獲取數(shù)據(jù)。未登錄時(shí),藝龍酒店數(shù)據(jù)頁如圖2-1所示,
可以看到在未登錄的情況下,查詢不到酒酒店價(jià)格,因此首先需要登陸該網(wǎng)址,
登陸過程需要圖片滑動(dòng)驗(yàn)證如圖2-2藝龍酒店網(wǎng)站登陸頁面所示,登陸成功后,
出現(xiàn)價(jià)格如圖2-3。
圖2-1藝龍酒店網(wǎng)站數(shù)據(jù)頁(未登陸)
5
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
圖2-2藝龍酒店網(wǎng)站登陸頁面
圖2-3藝龍酒店網(wǎng)數(shù)據(jù)頁(登錄后)
網(wǎng)頁打開后我們可以發(fā)現(xiàn)網(wǎng)頁數(shù)據(jù)集中在一個(gè)列表中,通過遍歷這個(gè)列表
就可以獲取需要的數(shù)據(jù)。
6
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
圖2-4藝龍酒店網(wǎng)數(shù)據(jù)頁-開發(fā)者工具
由于頁面只有單個(gè)網(wǎng)頁,為了得到更加準(zhǔn)確的分析結(jié)果,需要自動(dòng)爬取多
頁,網(wǎng)頁自動(dòng)爬取,檢查網(wǎng)頁元素后可見,界面上有下一頁按鈕,根據(jù)下一頁
按鈕獲取下一頁數(shù)據(jù)即可。
圖2-5藝龍酒店網(wǎng)下一頁-開發(fā)者工具
2.3.2數(shù)據(jù)存儲(chǔ)技術(shù)
完成了網(wǎng)頁數(shù)據(jù)爬取后,需要將數(shù)據(jù)保存下來,傳統(tǒng)的數(shù)據(jù)持久化存儲(chǔ)方
案可以采用傳統(tǒng)的MYSQL存儲(chǔ),但是MYSQL需要搭建環(huán)境,而且不方便實(shí)現(xiàn)數(shù)
據(jù)遷移,考慮到數(shù)據(jù)量和遷移需求。
SQLite是一種輕量級(jí)的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),其使用方便、易于集成和
部署,并不需要獨(dú)立的服務(wù)器進(jìn)程或配置。SQLite可以存儲(chǔ)大量數(shù)據(jù),支持多
種編程語言,包括C、Java、Python等,同時(shí)也支持跨平臺(tái)使用。因此,在需
要嵌入式數(shù)據(jù)庫或需要在移動(dòng)設(shè)備上存儲(chǔ)數(shù)據(jù)時(shí),SQLite通常被認(rèn)為是一種優(yōu)
秀的選擇。
這次項(xiàng)目中采用了SQLite3作為數(shù)據(jù)庫。
7
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
Python已經(jīng)內(nèi)置了基本SQLite3數(shù)據(jù)庫,無需額外安裝。Python內(nèi)置SQLite
模塊如圖2-1顯示。
圖2-6python內(nèi)置SQLite3模塊
對(duì)于數(shù)據(jù)的讀取分析和清洗使用Pandas作為分析工具,pandas是基于
NumPy的一種工具,該工具是為解決數(shù)據(jù)分析任務(wù)而創(chuàng)建的。由于在Pandas納
入了大量的數(shù)據(jù)處理庫和一些標(biāo)準(zhǔn)的數(shù)據(jù)模型,提供了高效地操作大型數(shù)據(jù)集
所需的大部分工具。借助Pandas提供了的大量封裝工具,可以快速便捷地處理
數(shù)據(jù)的函數(shù)和方法。Pandas對(duì)接SQLite如圖2-2所示。
圖2-7pandas對(duì)接SQLite3
2.3.3可視化技術(shù)
常見的可視化工具有:Tableau:是一款商業(yè)智能軟件,可以創(chuàng)建復(fù)雜的
交互式圖形和儀表板;PowerBI:是一款由微軟開發(fā)的商業(yè)智能工具,可以連
接多個(gè)數(shù)據(jù)源并創(chuàng)建交互式報(bào)表和儀表板。Python:使用Python編程語言和
相關(guān)的庫(如Matplotlib、Seaborn等)進(jìn)行數(shù)據(jù)可視化。
8
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
此次項(xiàng)目中僅僅只是將得到的數(shù)據(jù)用很簡單的可視化手段實(shí)現(xiàn)數(shù)據(jù)可視
化,具體的就是用python第三方庫matpoltlab去進(jìn)行可視化,matplotlab中包
含了許多庫,分別對(duì)應(yīng)餅圖、條形圖、直方圖、折線圖等圖形,可以很好的將數(shù)
據(jù)高效率的表現(xiàn)出來,可視化圖形呈現(xiàn)出來后對(duì)于結(jié)果自然一目了然,然后得出
結(jié)論。
3數(shù)據(jù)采集
3.1采集頁面分析
我們首先通過谷歌瀏覽器搜索藝龍酒店官方網(wǎng)頁,然后找到北京地區(qū)的酒
店,提示需要登陸,在測試過程中多測登陸會(huì)觸發(fā)網(wǎng)站的反爬機(jī)制,禁止登
錄,因此登錄不能太頻繁。數(shù)據(jù)爬取第一步首先需要登錄藝龍酒店官方網(wǎng)站的
登錄頁面(/passport/login_cn.html)。
圖3-1數(shù)據(jù)登錄頁面
登錄成功后,系統(tǒng)會(huì)自動(dòng)跳轉(zhuǎn)到一個(gè)網(wǎng)頁,因此在程序中通過掃描所有打
開的窗口,檢查指定的窗口是否被打開就可以知道是否成功登陸。如果登陸失
敗需要一直等待用戶登錄,或者手動(dòng)打開,代碼實(shí)現(xiàn)如圖3-2所示。
9
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
圖3-2等待登錄代碼
用戶登陸后打開要爬取的網(wǎng)站,藝龍酒店將每地域的酒店都提供了一個(gè)必
要參數(shù)cityId比如要查詢上海的,cityId=0201,同時(shí)通過分析得知
filterList字段控制了排序順序,為了避免智能排序和綜合排序等產(chǎn)生重復(fù)
數(shù)據(jù),采用8888_7,也就是相對(duì)穩(wěn)定的按評(píng)價(jià)人數(shù)排序,等待程序打開數(shù)據(jù)
頁,受限于網(wǎng)絡(luò)速度,瀏覽器可能沒有及時(shí)打開需要的數(shù)據(jù)頁面,因此需要循
環(huán)嘗試打開網(wǎng)頁,直到網(wǎng)頁成功打開。
圖3-3等待打開數(shù)據(jù)頁代碼
3.2字段分析
數(shù)據(jù)頁界面如圖3-4所示,點(diǎn)擊F12打開開發(fā)者工具。
10
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
圖3-4數(shù)據(jù)頁F12定位字段
我們首先來到網(wǎng)頁面打開網(wǎng)頁的數(shù)據(jù)區(qū)域,然后定位到酒店信息列表的位
置,然后繼續(xù)拷貝XPath,去除掉ul中的前綴,就可以拿到對(duì)應(yīng)的字段,掃描
完一頁之后,點(diǎn)擊下一頁按鈕,提取下一頁信息即可,將我們爬取到的信息采
集完后放到一個(gè)python的list中,等待掃描結(jié)束,一次性寫入到SQLite3數(shù)
據(jù)庫中去。所需要提取的字段XPath如表3-1所示:
字段XPath
酒店信息數(shù)組//*[@id="hotel"]/div/div[5]/div[1]/div[2]/ul
名稱酒店信息數(shù)組/div[2]/p[1]/a/span[2]
位置酒店信息數(shù)組/div[3]/div[2]/div/p[1]/em
評(píng)分酒店信息數(shù)組/div[2]/p[2]/span[1]
價(jià)格酒店信息數(shù)組/div[2]/p[1]/a/span[3]/em
星級(jí)酒店信息數(shù)組/div[3]/div[1]/p[2]
下一頁按鈕//*[@id="hotel"]/div[1]/div[5]/div[1]/div[3]/a
或//*[@id="hotel-
page"]/div[1]/div[5]/div[1]/div[3]/a[2]
表3-1所需要提取的字段XPath
過于頻繁爬取界面會(huì)被識(shí)別成爬蟲,為了解決這個(gè)問題,在爬取完一個(gè)網(wǎng)
頁之后,加入一些用戶操作,比如向下滑屏,然后等待一段時(shí)間再點(diǎn)擊。爬取
數(shù)據(jù)代碼如圖3-5所示
11
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
圖3-5數(shù)據(jù)頁爬取代碼
4數(shù)據(jù)清洗與處理
這次項(xiàng)目中我們需要將爬下來的數(shù)據(jù)和網(wǎng)頁原數(shù)據(jù)進(jìn)行比對(duì),并且檢查是
否出現(xiàn)空值、錯(cuò)值,還有數(shù)據(jù)的位置是否正確。根據(jù)不同的需求我們要對(duì)數(shù)據(jù)
進(jìn)行不同的處理。
4.1數(shù)據(jù)清洗
獲得數(shù)據(jù)之后,我們需要對(duì)數(shù)據(jù)進(jìn)行解析和處理。為了將數(shù)據(jù)存入到
SQLite3數(shù)據(jù)庫中,需要將數(shù)據(jù)轉(zhuǎn)化為指定格式的數(shù)據(jù)。分析爬取下來的數(shù)
據(jù),需要對(duì)數(shù)據(jù)進(jìn)行清洗,對(duì)于每一行,檢查hotel_price是不是符合格式"
¥價(jià)格起",由于有些數(shù)據(jù)條目沒有給出價(jià)格,但是后續(xù)分析我們需要基于價(jià)
格,為了方便后面的數(shù)據(jù)處理,需要檢查數(shù)據(jù),并將數(shù)據(jù)中不符合規(guī)則的數(shù)據(jù)
剔除掉,為了保證數(shù)據(jù)一致性,采用None填充空值。
12
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
4.2數(shù)據(jù)儲(chǔ)存
數(shù)據(jù)儲(chǔ)存得方法有很多種,常見得可以直接用記事本格式儲(chǔ)存(txt),或
者直接用其他文件的形式儲(chǔ)存csv、excel、json、parquet等。如果需要儲(chǔ)存
較大的數(shù)據(jù)信息就需要用到我們的數(shù)據(jù)庫,數(shù)據(jù)庫也分為關(guān)系型(比如MySQL,
SQLserver、SQLite)和非關(guān)系型數(shù)據(jù)庫(Mongodb,Redis,Hbase)。這次項(xiàng)
目我們用到的是SQLite。幸運(yùn)的是Pycharm集成了對(duì)應(yīng)的SQLite插件,只需
要安裝插件就可以很方便地查看數(shù)據(jù)內(nèi)容。將清洗后的數(shù)據(jù)通過SQLite存儲(chǔ)
到SQLite中。首先創(chuàng)建數(shù)據(jù)模型:
圖4-1sqlite數(shù)據(jù)模型
數(shù)據(jù)存儲(chǔ)到SQLite之后,查看數(shù)據(jù)存儲(chǔ)結(jié)果如圖4-2所示:
圖4-2數(shù)據(jù)存儲(chǔ)SQLite頁面
13
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
5數(shù)據(jù)統(tǒng)計(jì)與分析
5.1數(shù)據(jù)展示
5.1.1統(tǒng)計(jì)每個(gè)星級(jí)酒店數(shù)量
圖5-1酒店類型分布餅狀圖
從上圖可以看出,經(jīng)濟(jì)型酒店在上海市場占據(jù)了絕大部分份額,同時(shí)舒適
型和高檔型酒店雖然相對(duì)較少,但也存在市場需求。
經(jīng)濟(jì)型酒店的數(shù)量遠(yuǎn)遠(yuǎn)超過其他類別,對(duì)于那些注重預(yù)算的游客來說,他
們希望能夠以更合理的價(jià)格享受到基本的住宿體驗(yàn),而經(jīng)濟(jì)型酒店在這方面的
優(yōu)勢比較明顯。此外,隨著旅游行業(yè)的發(fā)展,越來越多的人選擇旅游,這使得
經(jīng)濟(jì)型酒店的需求量不斷攀升。
舒適型和高檔型酒店的市場份額不占優(yōu)勢,這些酒店通常提供更高品質(zhì)的
住宿服務(wù)等等。這些服務(wù)吸引了那些追求更高品質(zhì)住宿體驗(yàn)的游客,因此這些
酒店的價(jià)格也相對(duì)較高。
14
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
5.1.2統(tǒng)計(jì)每種類型酒店評(píng)分分布
圖5-2酒店評(píng)分分布箱型圖
這張圖片展示的是上海不同類型酒店的評(píng)分情況,從中可以發(fā)現(xiàn)一些有趣
的市場趨勢。
經(jīng)濟(jì)型酒店的評(píng)分跨度相對(duì)較大,同時(shí)其評(píng)分平均數(shù)和中位數(shù)也低于所有
酒店類型。這可能是因?yàn)榻?jīng)濟(jì)型酒店通常提供更基礎(chǔ)的住宿服務(wù),包括較少的
設(shè)施和服務(wù)等等,因此客戶的評(píng)分也相應(yīng)受到了影響。然而,盡管如此,大部
分經(jīng)濟(jì)型酒店的評(píng)分仍然在3.6~4.7之間,說明游客對(duì)于這類酒店的滿意度還
是很高的。
舒適性酒店和高檔型酒店整體評(píng)分要優(yōu)于經(jīng)濟(jì)型酒店。雖然數(shù)量上不如經(jīng)
濟(jì)型酒店,但這些酒店的品質(zhì)和服務(wù)都相當(dāng)出色。特別是高檔型酒店的評(píng)分略
微優(yōu)于其他類型的酒店。
三、四、五星級(jí)酒店和豪華型酒店雖然樣本量較少,但整體評(píng)分較高,同
時(shí)隨著酒店星級(jí)的提升,評(píng)分表現(xiàn)也對(duì)應(yīng)較高。
15
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
5.1.3統(tǒng)計(jì)每種酒店價(jià)格分布情況
圖5-3酒店價(jià)格分布箱型圖
這張圖片呈現(xiàn)的是上海不同類型酒店的價(jià)格分布情況。從圖中可以看出,
經(jīng)濟(jì)型酒店的價(jià)格普遍較低,而高檔型酒店和豪華型酒店則通常價(jià)格較高。
經(jīng)濟(jì)型酒店在上海市場占有很大的份額,并且價(jià)格相對(duì)較為親民。這可能
是因?yàn)榻?jīng)濟(jì)型酒店通常提供更基礎(chǔ)的住宿設(shè)施和服務(wù),所以價(jià)格也更加親民。
此外,由于經(jīng)濟(jì)型酒店數(shù)量眾多,在市場競爭激烈的情況下,價(jià)格上的優(yōu)勢也
能夠吸引更多的消費(fèi)者。
舒適型酒店和高檔型酒店的價(jià)格相對(duì)較高,但是這些酒店通常提供更為高
品質(zhì)的住宿體驗(yàn)和服務(wù)。尤其是高檔型酒店和豪華型酒店,價(jià)格普遍偏高,但
這也是因?yàn)樗鼈兲峁┑姆?wù)和設(shè)施遠(yuǎn)比其他類別的酒店更為豪華和高檔。對(duì)于
那些追求更高品質(zhì)住宿體驗(yàn)的游客來說,選擇這類酒店相對(duì)適合,需要根據(jù)自
身經(jīng)濟(jì)水平選擇合適的酒店。
16
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
5.1.4按酒店類型統(tǒng)計(jì)評(píng)分與價(jià)格分布情況
圖5-4酒店評(píng)分與價(jià)格分布散點(diǎn)圖
對(duì)于經(jīng)濟(jì)型酒店來說,它們的價(jià)格和評(píng)分分布相對(duì)比較均勻。尤其是經(jīng)濟(jì)
型酒店,雖然在低價(jià)區(qū)間就存在5分酒店,但是在高價(jià)區(qū)間也存在一些低分酒
17
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
店。這表明了價(jià)格和評(píng)分之間沒有太強(qiáng)的關(guān)聯(lián)性,因此在選擇經(jīng)濟(jì)型和高檔型
酒店時(shí),需要更加全面地考慮多方面因素,而不僅僅是價(jià)格或者評(píng)分。值得注
意的是,經(jīng)濟(jì)型酒店中的低價(jià)酒店通常存在著較多的高分酒店,因此游客可以
更加容易地尋找到那些物美價(jià)廉的酒店。
對(duì)于舒適型酒店的價(jià)格和評(píng)分之間的關(guān)系相對(duì)比較明顯。從圖中可以看
出,在高價(jià)段很少出現(xiàn)低分酒店,由于這類酒店通常比經(jīng)濟(jì)型酒店提供的服務(wù)
和設(shè)施更為豪華和高檔,通常定價(jià)也更高,因此價(jià)格和品質(zhì)之間的關(guān)聯(lián)性也會(huì)
更加緊密。
5.2綜述
綜合上述所有數(shù)據(jù),可以得出經(jīng)濟(jì)型酒店價(jià)格較低,但是也評(píng)分參差不
齊,適合追求經(jīng)濟(jì)和性價(jià)比的消費(fèi)者選擇,但是也要注意避開過低的酒店,可
能存在,不能一味追求低價(jià)。舒適型酒店相對(duì)價(jià)格較高,但是評(píng)分也相對(duì)穩(wěn)
定,在經(jīng)濟(jì)允許的情況可以選擇舒適型酒店,高檔型酒店和豪華型酒店需要看
個(gè)人需求。
溫馨提示
- 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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年中職第二學(xué)年(服裝結(jié)構(gòu)設(shè)計(jì))衣片打版綜合測試題及答案
- 初中八年級(jí)語文(文言文精讀)2027年上學(xué)期期末試題及答案
- 2025年大學(xué)人力資源管理(員工激勵(lì))試題及答案
- 2026年生產(chǎn)能力(效率提升)考題及答案
- 2026年口腔醫(yī)學(xué)(牙周病治療)考題及答案
- 2025年大學(xué)輕化工程(皮革化學(xué)與工程)試題及答案
- 大學(xué)(漢語言文學(xué))古代文學(xué)常識(shí)2026年階段測試題
- 深度解析(2026)《GBT 18341-2021地質(zhì)礦產(chǎn)勘查測量規(guī)范》
- 深度解析(2026)《GBT 18252-2020塑料管道系統(tǒng) 用外推法確定熱塑性塑料材料以管材形式的長期靜液壓強(qiáng)度》(2026年)深度解析
- 深度解析(2026)《GBT 17980.129-2004農(nóng)藥 田間藥效試驗(yàn)準(zhǔn)則(二) 第129部分除草劑防治煙草田雜草》
- 從臨床指南更新看IBD生物劑治療策略
- (2026年)如何做好科室護(hù)理質(zhì)量管理課件
- 2025年湖南省長沙市政府采購評(píng)審專家考試真題(附含答案)
- 外商直接投資對(duì)我國產(chǎn)業(yè)結(jié)構(gòu)的影響:基于多維度視角與案例分析
- 2026中國人民銀行所屬企業(yè)網(wǎng)聯(lián)清算公司社會(huì)招聘備考題庫含答案詳解(鞏固)
- 2026水利部長江水利委員會(huì)事業(yè)單位招聘87人(第二批)筆試備考題庫附答案解析(奪冠)
- 《阿拉善右旗阿拉騰敖包鐵礦、螢石礦開采方案》評(píng)審意見書
- 火力發(fā)電廠安全教育課件
- 2025年《稅收征收管理法》新修訂版知識(shí)考試題庫及答案解析
- 帶隙基準(zhǔn)電路的設(shè)計(jì)
- 2025年《廣告策劃與創(chuàng)意》知識(shí)考試題庫及答案解析
評(píng)論
0/150
提交評(píng)論