基于Python的藝龍酒店網(wǎng)數(shù)據(jù)采集與分析_第1頁
基于Python的藝龍酒店網(wǎng)數(shù)據(jù)采集與分析_第2頁
基于Python的藝龍酒店網(wǎng)數(shù)據(jù)采集與分析_第3頁
基于Python的藝龍酒店網(wǎng)數(shù)據(jù)采集與分析_第4頁
基于Python的藝龍酒店網(wǎng)數(shù)據(jù)采集與分析_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論