【《基于網(wǎng)絡(luò)爬蟲的航班數(shù)據(jù)分析案例》17000字(論文)】_第1頁(yè)
【《基于網(wǎng)絡(luò)爬蟲的航班數(shù)據(jù)分析案例》17000字(論文)】_第2頁(yè)
【《基于網(wǎng)絡(luò)爬蟲的航班數(shù)據(jù)分析案例》17000字(論文)】_第3頁(yè)
【《基于網(wǎng)絡(luò)爬蟲的航班數(shù)據(jù)分析案例》17000字(論文)】_第4頁(yè)
【《基于網(wǎng)絡(luò)爬蟲的航班數(shù)據(jù)分析案例》17000字(論文)】_第5頁(yè)
已閱讀5頁(yè),還剩54頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡(jiǎn)介

基于網(wǎng)絡(luò)爬蟲的航班數(shù)據(jù)分析案例摘要利用互聯(lián)網(wǎng)技術(shù)開發(fā)設(shè)計(jì)一個(gè)基于網(wǎng)絡(luò)爬蟲的航班數(shù)據(jù)分析系統(tǒng),通過開發(fā)網(wǎng)絡(luò)爬蟲工具,通過互聯(lián)網(wǎng)獲取大量公開的航班信息,根據(jù)航班的具體信息,如高度、速度、航班所屬國(guó)家等,對(duì)實(shí)時(shí)數(shù)據(jù)可視化展示,有利于分析臨港上空的航班信息,對(duì)航班數(shù)據(jù)統(tǒng)計(jì)分析可提高工作效率。因此基于網(wǎng)絡(luò)爬蟲的航班數(shù)據(jù)分析分析系統(tǒng)的設(shè)計(jì)開發(fā)有著現(xiàn)實(shí)需求和意義。系統(tǒng)提供從網(wǎng)站爬取航班數(shù)據(jù)、設(shè)置爬蟲參數(shù),運(yùn)行爬蟲程序獲取數(shù)據(jù)、篩選數(shù)據(jù)、實(shí)時(shí)數(shù)據(jù)可視化展示,展示可選擇飛機(jī)的高度、速度、航班所屬國(guó)家等信息。主要使用Pythonrequest、matplotlib和pandas等技術(shù)開發(fā)關(guān)鍵詞:爬蟲;數(shù)據(jù)分析;數(shù)據(jù)可視化目錄1 開發(fā)背景 [10]。經(jīng)濟(jì)可行性研究的目的是在系統(tǒng)開發(fā)中以最小最合適的開發(fā)成本取得最佳的成果。本系統(tǒng)為基于網(wǎng)絡(luò)爬蟲的數(shù)據(jù)分析,使用的爬蟲獲取的數(shù)據(jù)均為網(wǎng)絡(luò)上免費(fèi)使用的數(shù)據(jù),功能實(shí)用性極高,不需要再購(gòu)買任何相關(guān)資料和數(shù)據(jù)。并且本系統(tǒng)具有較高的再開發(fā)性,如在后期購(gòu)買專業(yè)數(shù)據(jù),能向大數(shù)據(jù)分析方面進(jìn)行再開發(fā)實(shí)現(xiàn)更多功能。技術(shù)可行性是研究現(xiàn)有技術(shù)是否能完成順利開發(fā)工作,軟、硬件是否能夠滿足開發(fā)的條件等待。本系統(tǒng)最終采用PyQt5來設(shè)計(jì)GUI,采用Pyechart來實(shí)現(xiàn)數(shù)據(jù)可視化,采用MYSQL數(shù)據(jù)庫(kù)、json文件和csv文件來存儲(chǔ)數(shù)據(jù),并且本系統(tǒng)基于Windows系統(tǒng),系統(tǒng)小巧,模塊劃分清晰完整,技術(shù)上開發(fā)完全可行。功能分析本系統(tǒng)為個(gè)人使用,功能需求有:爬取指定網(wǎng)址數(shù)據(jù),將數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)中,爬取指定經(jīng)緯度區(qū)域航班并且實(shí)現(xiàn)地圖可視化展示,爬取浦東機(jī)場(chǎng)以及虹橋機(jī)場(chǎng)航班數(shù)據(jù)并且對(duì)數(shù)據(jù)進(jìn)行分析并生成圖表并反映一定規(guī)律等。系統(tǒng)總體設(shè)計(jì)系統(tǒng)功能設(shè)計(jì)系統(tǒng)的功能設(shè)計(jì)在一個(gè)系統(tǒng)的開發(fā)過程中是十分重要的。在進(jìn)行需求分析后,將各個(gè)功能整合到系統(tǒng)的幾個(gè)模塊中,來形成系統(tǒng)的總體框架。系統(tǒng)功能模塊圖爬蟲與分析系統(tǒng)主要分為兩部分:浦東、虹橋機(jī)場(chǎng)爬取分析,實(shí)時(shí)區(qū)域爬取分析。浦東、虹橋機(jī)場(chǎng)爬取分析部分有浦東虹橋機(jī)場(chǎng)進(jìn)港離港航班展示查詢模塊、爬蟲模塊、圖表分析模塊、航線展示模塊、具體航班飛行歷史展示模塊;實(shí)時(shí)區(qū)域爬取分析部分有特定經(jīng)緯度爬蟲模塊、數(shù)據(jù)展示模塊、實(shí)時(shí)航班地圖顯示模塊、圖表分析模塊、具體航班飛行歷史展示模塊、航線展示模塊。功能模塊圖如下圖所示:圖系統(tǒng)功能模塊圖各功能模塊介紹浦東、虹橋機(jī)場(chǎng)爬取分析部分,通過爬取網(wǎng)站數(shù)據(jù)后能通過航班查詢展示模塊查看爬取下來存儲(chǔ)在數(shù)據(jù)庫(kù)中的數(shù)據(jù),爬蟲模塊為多線程爬蟲能在爬取數(shù)據(jù)過程中進(jìn)行其他操作,圖表分析模塊通過生成多種圖表對(duì)數(shù)據(jù)庫(kù)中或爬取下來的數(shù)據(jù)進(jìn)行分析并且生成簡(jiǎn)單易懂的各式圖表,航線展示模塊能對(duì)指定的航班航次在地圖上顯示飛行路線,具體航班飛行歷史展示模塊能爬取某個(gè)航班的近期飛行數(shù)據(jù)并展示,還能生成該航班起飛時(shí)間規(guī)律日歷圖。實(shí)時(shí)區(qū)域爬取分析部分,首先通過設(shè)定經(jīng)緯度進(jìn)行指定區(qū)域爬取網(wǎng)站航班數(shù)據(jù),之后通過數(shù)據(jù)展示模塊瀏覽整理后的爬取數(shù)據(jù),能通過實(shí)時(shí)航班地圖顯示模塊在地圖上顯示航班位置,也可以通過圖表分析模塊生成圖表,也可以跳轉(zhuǎn)到具體航班飛行歷史展示模塊爬取數(shù)據(jù)和瀏覽數(shù)據(jù),生成日歷圖和航線圖。系統(tǒng)流程設(shè)計(jì)根據(jù)系統(tǒng)功能,可以畫出如下圖所示的流程圖:圖5.2-1系統(tǒng)流程圖數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì)是指對(duì)于一個(gè)給定的應(yīng)用環(huán)境,構(gòu)造(設(shè)計(jì))優(yōu)化的數(shù)據(jù)庫(kù)邏輯模式和物理結(jié)構(gòu),并據(jù)此建立數(shù)據(jù)庫(kù)及其應(yīng)用系統(tǒng),使之能夠有效的存儲(chǔ)和管理數(shù)據(jù),滿足各種用戶的應(yīng)用需求,包括數(shù)據(jù)管理要求和數(shù)據(jù)操作要求。本文設(shè)計(jì)數(shù)據(jù)庫(kù)的流程是:1.從系統(tǒng)的信息中抽取實(shí)體和關(guān)系,設(shè)計(jì)ER圖,即實(shí)體-關(guān)系圖。ER圖是用來描述現(xiàn)實(shí)世界的概念模型,提供了表示實(shí)體性、屬性和聯(lián)系的方法。實(shí)體性用矩形表示,屬性用橢圓形表示,聯(lián)系用菱形表示。2.將ER圖轉(zhuǎn)化為數(shù)據(jù)庫(kù)。設(shè)計(jì)E-R圖實(shí)體屬性圖機(jī)場(chǎng)入港航班信息E-R圖如圖6.1.1-1所示:圖6.1.1-1機(jī)場(chǎng)入港航班信息E-R圖機(jī)場(chǎng)離港航班信息E-R圖如圖6.1.1-2所示:圖6.1.1-2機(jī)場(chǎng)離港航班信息E-R圖每一個(gè)航班號(hào)將會(huì)生成唯一一個(gè)表,表中存放具體航班號(hào)所有的航次詳細(xì)信息,多張表的結(jié)構(gòu)一樣,具體航班航次詳細(xì)記錄信息E-R圖如圖6.1.1-3所示:圖6.1.1-3具體航班航次詳細(xì)記錄信息E-R圖實(shí)體聯(lián)系圖實(shí)體聯(lián)系圖如圖6.1.2-1所示:圖6.1.2-1實(shí)體聯(lián)系圖數(shù)據(jù)庫(kù)表表是數(shù)據(jù)庫(kù)中很重要的組成部分,通過表可以構(gòu)建所有的數(shù)據(jù)關(guān)系,并且可以通過主鍵等設(shè)置來反映數(shù)據(jù)庫(kù)的安全性。每張數(shù)據(jù)表都由不同的字段構(gòu)成,并利用主、外鍵進(jìn)行表之間的關(guān)聯(lián),非常的方便。在本系統(tǒng)中,因?yàn)樯婕皟蓚€(gè)機(jī)場(chǎng),機(jī)場(chǎng)記錄又分為入港記錄和離港記錄,因此有四個(gè)結(jié)構(gòu)相似的表,在下列介紹入港結(jié)構(gòu)和離港結(jié)構(gòu)。在本系統(tǒng)中,因?yàn)楹桨嗵?hào)不能唯一的代表一次飛行記錄,而是代表一條航線或一架飛行,因此每次爬取數(shù)據(jù)時(shí)每一個(gè)航班號(hào)將會(huì)生成一個(gè)唯一的表,且它們的表結(jié)構(gòu)一樣,表名為各自航班號(hào)。下面介紹幾個(gè)比較重要的表結(jié)構(gòu):入港航班航次記錄信息表如表6.2-1所示:表6.2-1入港航班航次記錄信息表字段名類型長(zhǎng)度約束說明主鍵FlightIdvarchar255Notnull航次唯一ID主鍵Titlevarchar255Notnull所屬公司無Identifiervarchar255Notnull航班號(hào)無Modelvarchar255無機(jī)型無Originvarchar255無來源地?zé)oOrigincood1varchar255無來源地經(jīng)度無Origincood2varchar255無來源地緯度無Urlvarchar255無航次網(wǎng)址無DepartureTimedatetime0無出發(fā)時(shí)間無ArrivalTimedatetime0無到達(dá)時(shí)間無Speedint0無速度無Weekvarchar255無星期五離港航班航次信息表如表6.2-2所示表6.2-2離港航班航次信息表字段名類型長(zhǎng)度約束說明主鍵FlightIdvarchar255Notnull航次唯一ID主鍵Titlevarchar255Notnull所屬公司無Identifiervarchar255Notnull航班號(hào)無Modelvarchar255無機(jī)型無Destinationvarchar255無目的地?zé)oDestinationcood1varchar255無目的地經(jīng)度無Destinationcood2varchar255無目的地緯度無Urlvarchar255無航次網(wǎng)址無DepartureTimedatetime0無出發(fā)時(shí)間無ArrivalTimedatetime0無到達(dá)時(shí)間無Speedint0無速度無Weekvarchar255無星期五航班航次詳細(xì)記錄表如表6.2-3所示:表6.2-3航班航次詳細(xì)記錄表字段名類型長(zhǎng)度約束說明主鍵FlightIdvarchar255Notnull航次唯一ID主鍵Oiatavarchar255無來源機(jī)場(chǎng)三字代碼無Ocoordvarchar255無來源機(jī)場(chǎng)經(jīng)緯度無Olocationvarchar255無來源機(jī)場(chǎng)城市無Diatavarchar255無目的機(jī)場(chǎng)三字代碼無Dcoordvarchar255無目的地經(jīng)緯度無Dlocationvarchar255無目的機(jī)場(chǎng)城市無Aircrafttype varchar255無機(jī)型無Takeofftimesdatetime0無起飛時(shí)間無Landingtimesdatetime0無到達(dá)時(shí)間無Speedint0無速度無系統(tǒng)實(shí)現(xiàn)爬蟲設(shè)計(jì)正如系統(tǒng)名字,系統(tǒng)實(shí)現(xiàn)的功能首當(dāng)其沖便是爬蟲模塊,在本系統(tǒng)中,根據(jù)爬取網(wǎng)站和數(shù)據(jù)類型的不同,擁有多個(gè)爬蟲模塊,代碼量龐大,在此只介紹各個(gè)爬蟲相同的部分并且介紹各個(gè)爬蟲重要的部分。爬蟲設(shè)計(jì)應(yīng)用的是Python的Requests模塊,通過向網(wǎng)站發(fā)送不同的請(qǐng)求來獲取相應(yīng)的數(shù)據(jù)。本系統(tǒng)的爬蟲涉及多種數(shù)據(jù)類型因此并沒有使用現(xiàn)有的爬蟲框架,因此爬蟲和數(shù)據(jù)存儲(chǔ)代碼量龐大。本次系統(tǒng)爬取的網(wǎng)站為:/live/首先從實(shí)時(shí)區(qū)域爬取部分來介紹最通用的部分,在本系統(tǒng)中多個(gè)爬蟲代碼都涉及到該網(wǎng)站的反爬策略,該策略為:每次向服務(wù)器發(fā)出請(qǐng)求時(shí),會(huì)生成一個(gè)有一定時(shí)效性的Token串,該Token串藏在請(qǐng)求的網(wǎng)站頁(yè)面中,該Token用于向服務(wù)器發(fā)送AJAX請(qǐng)求時(shí)組成URL,這樣才可以獲取到數(shù)據(jù)。因此需要將網(wǎng)站網(wǎng)頁(yè)整個(gè)爬下尋找一個(gè)反爬Token,利用正則表達(dá)式解析HTML文件將其解析出來。例如圖7.1-1爬蟲示例1所示,該爬蟲為實(shí)時(shí)爬取部分的爬蟲模塊代碼的一部分,在本系統(tǒng)中有許多類似的代碼。圖7.1-1爬蟲示例1在爬取數(shù)據(jù)時(shí),有些數(shù)據(jù)需要發(fā)送AJAX請(qǐng)求,來獲取數(shù)據(jù)JSON串,因此會(huì)涉及到一些其他參數(shù)(param),例如在爬取規(guī)定經(jīng)緯度的實(shí)時(shí)航班時(shí),需要涉及到經(jīng)緯度參數(shù)獲取,因此會(huì)用到如圖7.1-2爬蟲示例2所示的類似代碼,在本次系統(tǒng)中用到的該種爬蟲代碼的模塊局多。圖7.1-2爬蟲示例2通過規(guī)定經(jīng)緯度來爬取指定區(qū)域的實(shí)時(shí)航班后,通過CSV文件來進(jìn)行存儲(chǔ),存儲(chǔ)格式代碼和解析JSON串代碼如圖7.1-3和圖7.1-4所示:圖7.1-3解析和存儲(chǔ)代碼1圖7.1-4解析和存儲(chǔ)代碼2在實(shí)時(shí)爬取部分還涉及到具體航班歷史記錄爬蟲,因?yàn)樵摼W(wǎng)站現(xiàn)航班記錄和歷史航班記錄都有具體的HTML頁(yè)面,因此需要將現(xiàn)航班記錄URL和歷史航班記錄URL區(qū)分,分別設(shè)計(jì)為兩個(gè)爬蟲。在該部分需要爬取具體航班的歷史記錄時(shí),在現(xiàn)航班記錄HTML的反爬Token與爬取指定經(jīng)緯度區(qū)域頁(yè)面需要發(fā)送的反爬Token為分別獨(dú)立的兩個(gè)反爬Token,因此需要進(jìn)行兩個(gè)爬蟲的數(shù)據(jù)拼接。流程為:首先爬取指定航班號(hào)現(xiàn)航班記錄頁(yè)面,提取反爬Token在進(jìn)行URL拼接發(fā)送AJAX請(qǐng)求獲取數(shù)據(jù)JSON串,關(guān)鍵代碼如圖7.1-5所示,解析JSON串和存儲(chǔ)代碼過于冗長(zhǎng)在此不放出。圖7.1-5爬取航班歷史記錄關(guān)鍵代碼接下來介紹爬取機(jī)場(chǎng)數(shù)據(jù)的爬蟲,無論是入港還是離港的機(jī)場(chǎng)數(shù)據(jù)獲取都需要通過兩個(gè)爬蟲來進(jìn)行爬取,流程為:首先爬取指定機(jī)場(chǎng)的HTML頁(yè)面獲取航班記錄表格,通過BS4解析HTML文件獲取需要的數(shù)據(jù)(如航班公司),之后通過航班號(hào)爬取歷史航班記錄頁(yè)面獲取其他需要的數(shù)據(jù)。同時(shí)獲取航班記錄時(shí),因反復(fù)爬取數(shù)據(jù)次數(shù)量巨大,為了避免被網(wǎng)站封鎖IP,通過設(shè)置爬蟲延遲來模擬用戶行為來避免被封鎖IP爬蟲關(guān)鍵代碼如圖7.1-6和圖7.1-7所示,BS4解析和存儲(chǔ)代碼冗長(zhǎng)在此不放出。圖7.1-6機(jī)場(chǎng)爬蟲關(guān)鍵代碼1圖7.1-7機(jī)場(chǎng)爬蟲關(guān)鍵代碼2圖7.1-1和圖7.1-2中的爬蟲為獲取浦東機(jī)場(chǎng)入港航班記錄爬蟲的關(guān)鍵代碼,類似的代碼還有獲取浦東機(jī)場(chǎng)離港航班記錄爬蟲,虹橋機(jī)場(chǎng)入港、離港航班記錄爬蟲共三個(gè)爬蟲,在此代碼類似因此不再贅述。接下來介紹獲取航線飛行軌跡的爬蟲。為了在地圖上展示某航班某次飛行的具體路線,因此設(shè)計(jì)了一個(gè)單獨(dú)的爬蟲來獲取某次飛行路線的經(jīng)緯度坐標(biāo)點(diǎn),展示效果將在下文數(shù)據(jù)分析部分放出。爬蟲流程為:爬取該航班歷史記錄HTML頁(yè)面尋找反爬Token后,拼接URL后向服務(wù)器發(fā)送AJAX請(qǐng)求獲取JSON串,解析JSON串提取點(diǎn)經(jīng)緯度坐標(biāo)后存儲(chǔ)在JSON文件中,為畫圖做準(zhǔn)備,關(guān)鍵代碼如圖7.1-8所示(圖中省略代碼為部分解析代碼):圖7.1-8航線飛行軌跡爬蟲 為了在使用PyQt5設(shè)計(jì)的窗口時(shí)程序運(yùn)行不卡頓,使用多線程爬蟲的方式使程序可以邊進(jìn)行爬取數(shù)據(jù)邊進(jìn)行系統(tǒng)其它操作。例如在爬取浦東虹橋機(jī)場(chǎng)數(shù)據(jù)時(shí),因爬蟲時(shí)間過長(zhǎng),可以邊爬取邊進(jìn)行數(shù)據(jù)分析,因此單獨(dú)設(shè)計(jì)一個(gè)類來設(shè)計(jì)線程,線程關(guān)鍵代碼如圖7.1-9所示:圖7.1-9浦東虹橋機(jī)場(chǎng)爬蟲線程關(guān)鍵代碼數(shù)據(jù)庫(kù)鏈接設(shè)計(jì)Python與Mysql數(shù)據(jù)庫(kù)的鏈接比較簡(jiǎn)單,通常使用以下代碼就可以建立與數(shù)據(jù)庫(kù)的鏈接,在爬蟲模塊使用圖7.2-1的方式鏈接數(shù)據(jù)庫(kù),將解析完成后的數(shù)據(jù)存儲(chǔ)在列表或字典中,使用圖7.2-2的方式來進(jìn)行數(shù)據(jù)存儲(chǔ)。所有的爬蟲都使用下圖類似的方法。圖7.2-1與數(shù)據(jù)庫(kù)建立鏈接圖7.2-2存儲(chǔ)數(shù)據(jù)在PyQt5窗口設(shè)計(jì)部分,使用單獨(dú)的.py文件設(shè)計(jì)函數(shù)來進(jìn)行數(shù)據(jù)庫(kù)鏈接,文件名為dbconnect.py,關(guān)鍵代碼如圖7.2-3所示:圖7.2-3dbconnect.py關(guān)鍵代碼在圖表生成模塊,通常需要使用到數(shù)據(jù)庫(kù)查詢語句,因此圖表生成模塊統(tǒng)一使用圖7.2-4的方式建立數(shù)據(jù)庫(kù)鏈接,在查詢數(shù)據(jù)時(shí),查詢出的數(shù)據(jù)通常需要使用pandas模塊來對(duì)數(shù)據(jù)進(jìn)行一定的處理或分析數(shù)據(jù),生成字典或列表用于數(shù)據(jù)可視化,因此在圖表生成模塊使用圖7.2-5的方式來查詢數(shù)據(jù)。 圖7.2-4建立數(shù)據(jù)庫(kù)鏈接圖7.2-5查詢數(shù)據(jù)選擇爬取分析部分界面(待美化)簡(jiǎn)單粗暴的界面設(shè)計(jì),用戶可以通過點(diǎn)擊不同的按鈕來進(jìn)入到不同的分析部分,窗體代碼文件為maWindow.py,窗體代碼冗長(zhǎng)不在此贅述,窗體效果如圖7.3-1所示,跳轉(zhuǎn)窗體代碼如圖7.3-2所示:圖7.3-1選擇爬取分析部分界面圖7.3-2跳轉(zhuǎn)代碼浦東虹橋機(jī)場(chǎng)爬取分析部分機(jī)場(chǎng)航班展示查詢模塊點(diǎn)擊上文中爬取浦東虹橋機(jī)場(chǎng)部分按鈕后,將跳轉(zhuǎn)到爬取并分析浦東虹橋機(jī)場(chǎng)窗體,窗體代碼為pvgmain.py,如下圖7.4.1-1所示:圖7.4.1-1爬取并分析浦東虹橋機(jī)場(chǎng)窗體如上圖可知,首先進(jìn)入的是機(jī)場(chǎng)航班展示查詢模塊,該窗體中有兩層QtabWidget,第一層將各個(gè)模塊相互分離,第二層將模塊的具體部分再細(xì)分。上圖中顯示的為浦東機(jī)場(chǎng)入港飛機(jī)航班查詢展示界面,下方空白表格用于展示數(shù)據(jù)庫(kù)中的航班數(shù)據(jù),在圖中右上角有一個(gè)刷新按鈕,點(diǎn)擊之后可以讀取相應(yīng)數(shù)據(jù)庫(kù)中的數(shù)據(jù),如數(shù)據(jù)庫(kù)發(fā)生更新,可以反復(fù)點(diǎn)擊刷新按鈕進(jìn)行表格更新,表格支持拖動(dòng)大小和上下拉動(dòng)瀏覽數(shù)據(jù),點(diǎn)擊后的效果如圖7.4.1-2所示,關(guān)鍵代碼如圖7.4.1-3所示:圖7.4.1-2點(diǎn)擊刷新后顯示數(shù)據(jù)圖7.4.1-3刷新按鈕關(guān)鍵代碼在該界面中可以進(jìn)行兩種搜索,分別為使用飛機(jī)航次唯一ID進(jìn)行搜索和航班號(hào)進(jìn)行查詢,查詢均在該界面該tabWidget所對(duì)應(yīng)的模塊數(shù)據(jù)庫(kù),即本地浦東機(jī)場(chǎng)入港數(shù)據(jù)庫(kù)中搜索(在離港飛機(jī)tabWidget界面時(shí)候就是查詢本地浦東機(jī)場(chǎng)離港數(shù)據(jù)庫(kù),虹橋機(jī)場(chǎng)依次推類),本地?cái)?shù)據(jù)庫(kù)的記錄來源于爬蟲模塊爬取的數(shù)據(jù)。使用飛機(jī)航次唯一ID進(jìn)行查詢時(shí),在輸入框輸入類似于下方列表中的ID進(jìn)行查詢搜索,該ID為每個(gè)航班航次的唯一ID,因此搜索結(jié)果只會(huì)有一條,如果想繼續(xù)瀏覽其他記錄可以進(jìn)行再次搜索或者點(diǎn)擊刷新按鈕,搜索效果圖如圖7.4.1-4所示,查詢關(guān)鍵代碼如圖7.4.1-5所示:圖7.4.1-4按ID查詢效果圖圖7.4.1-5按ID查詢關(guān)鍵代碼另一種搜索方式按航班號(hào)查詢,該查詢?cè)谄謻|機(jī)場(chǎng)入港數(shù)據(jù)數(shù)據(jù)庫(kù)查詢,使用航班號(hào)查詢時(shí),在對(duì)應(yīng)輸入框內(nèi)輸入想要查詢的航班號(hào)即可,航班號(hào)的每條記錄時(shí)間均不相同,例如每個(gè)航班號(hào)所代表的的飛機(jī)或代表的航線每天都會(huì)飛入浦東機(jī)場(chǎng),因此每個(gè)航班號(hào)可以得到多個(gè)記錄,如果想繼續(xù)瀏覽其他記錄可以進(jìn)行再次搜索或者點(diǎn)擊刷新按鈕,查詢效果圖如圖7.4.1-6所示,關(guān)鍵代碼如圖7.4.1-7所示:圖7.4.1-6按航班號(hào)查詢效果圖圖7.1.4-7按航班號(hào)查詢關(guān)鍵代碼右側(cè)在地圖上顯示時(shí)間段內(nèi)的航班為系統(tǒng)航線展示模塊的一個(gè)小功能,分別在兩個(gè)時(shí)間框內(nèi)設(shè)定正確的時(shí)間后(時(shí)間格式為年/月/日小時(shí):分鐘),點(diǎn)擊顯示按鈕將會(huì)生成航線圖,該航線圖對(duì)應(yīng)的有四種,分別為浦東機(jī)場(chǎng)入港航線圖、浦東機(jī)場(chǎng)離港航線圖、虹橋機(jī)場(chǎng)入港航線圖、虹橋機(jī)場(chǎng)離港航線圖,每個(gè)航線圖由對(duì)應(yīng)的QtabWidget界面的按鈕生成,下圖圖7.4.1-9為圖7.4.1-6中界面設(shè)定參數(shù)點(diǎn)擊顯示按鈕生成,即浦東機(jī)場(chǎng)入港航線圖(該圖7.4.1-9使用pyechart模塊生成,該圖表為動(dòng)態(tài)圖非靜態(tài)圖,文中只能顯示靜態(tài)圖,將鼠標(biāo)放在航線上可以顯示航線信息,地圖可以通過滾輪縮放,將鼠標(biāo)放在點(diǎn)上可以顯示點(diǎn)的基本信息和經(jīng)緯度等,代碼在下文放出)。圖7.4.1-8為設(shè)定參數(shù)圖。圖7.4.1-8設(shè)定參數(shù)圖圖7.4.1-9浦東機(jī)場(chǎng)入港航線圖 右側(cè)為輸入航班號(hào)獲取飛機(jī)航程具體數(shù)據(jù),在輸入框中輸入或不輸入航班號(hào)點(diǎn)擊獲取按鈕后可以進(jìn)入到具體航班飛行歷史展示模塊,進(jìn)入新窗體,該模塊詳細(xì)功能在下文介紹,點(diǎn)擊獲取后效果如圖7.4.1-10所示: 圖7.4.1-10點(diǎn)擊獲取后彈出新窗體上訴介紹為浦東機(jī)場(chǎng)入港航班數(shù)據(jù)查詢展示模塊,與此相似的模塊還有浦東機(jī)場(chǎng)離港航班數(shù)據(jù)查詢展示模塊,虹橋機(jī)場(chǎng)航班數(shù)據(jù)查詢展示機(jī)場(chǎng),虹橋機(jī)場(chǎng)航班數(shù)據(jù)查詢展示機(jī)場(chǎng)。點(diǎn)擊界面上的QtabWidget的分頁(yè)即可切換,因?yàn)樗膫€(gè)模塊的功能相似,在此功能不再贅述,圖7.4.1-11、圖7.4.1-12、圖7.4.1-13為三個(gè)模塊界面的展示。圖7.4.1-11浦東機(jī)場(chǎng)離港數(shù)據(jù)查詢展示圖7.4.1-12虹橋機(jī)場(chǎng)入港數(shù)據(jù)查詢展示圖7.4.1-13虹橋機(jī)場(chǎng)離港數(shù)據(jù)查詢展示機(jī)場(chǎng)爬蟲界面點(diǎn)擊上圖中QtabWidget的爬蟲分頁(yè)按鈕或者點(diǎn)擊左邊的蜘蛛按鈕,即可跳轉(zhuǎn)到爬分頁(yè),界面設(shè)計(jì)如圖7.4.2-1所示,可以在對(duì)應(yīng)的輸入框中輸入想要更新的數(shù)據(jù)量,點(diǎn)擊開始爬取,圖中共有4個(gè)爬蟲,均為線程爬蟲,可以同時(shí)運(yùn)行并且不影響系統(tǒng)的其他操作,點(diǎn)擊開始爬取后狀態(tài)欄會(huì)提示相應(yīng)爬蟲開始爬取數(shù)據(jù),爬取的數(shù)據(jù)會(huì)實(shí)時(shí)更新到相應(yīng)的數(shù)據(jù)庫(kù)效果圖如圖7.4.2-2所示:圖7.4.2-1機(jī)場(chǎng)爬蟲界面圖7.4.2-2點(diǎn)擊開始按鈕效果圖該模塊對(duì)應(yīng)的爬蟲代碼存儲(chǔ)在“爬浦東機(jī)場(chǎng).py”文件中爬蟲關(guān)鍵代碼在爬蟲設(shè)計(jì)部分已經(jīng)介紹,數(shù)據(jù)庫(kù)存儲(chǔ)部分也在上文中介紹過了,因?yàn)樗膫€(gè)爬蟲的代碼相似,不同的地方只有解析存儲(chǔ)時(shí)的部分結(jié)構(gòu)名和表名不同,因此在此只展示其中一個(gè)爬蟲的詳細(xì)代碼,圖7.4.2-3為爬浦東機(jī)場(chǎng).py文件總體瀏覽(代碼量過大),圖7.4.2-4至圖7.4.2-8為浦東機(jī)場(chǎng)入港航班數(shù)據(jù)爬蟲(其中包括爬取數(shù)據(jù)解析和存儲(chǔ)部分,其中多次爬取部分代碼類似因此折疊):圖7.4.2-3爬浦東機(jī)場(chǎng).py總覽圖7.4.2-4浦東機(jī)場(chǎng)入港航班數(shù)據(jù)爬蟲1圖7.4.2-5浦東機(jī)場(chǎng)入港航班數(shù)據(jù)爬蟲2圖7.4.2-6浦東機(jī)場(chǎng)入港航班數(shù)據(jù)爬蟲3圖7.4.2-7浦東機(jī)場(chǎng)入港航班數(shù)據(jù)爬蟲4圖7.4.2-8浦東機(jī)場(chǎng)入港航班數(shù)據(jù)爬蟲5實(shí)時(shí)爬取分析部分點(diǎn)擊圖7.3-1右邊的按鈕即可進(jìn)入實(shí)施爬取分析界面,窗體代碼文件為pandas_pyqt.py,界面如圖7.5-1所示:圖7.5-1實(shí)時(shí)爬取分析界面首先介紹左上方爬蟲部分,在四個(gè)對(duì)應(yīng)的框中輸入想要爬取的經(jīng)緯度后(即一個(gè)方框區(qū)域)點(diǎn)擊開始爬取按鈕,便會(huì)進(jìn)行爬蟲爬取,爬取的數(shù)據(jù)保存在limtmapdetailfly.csv中,點(diǎn)擊清空按鈕會(huì)清空左側(cè)輸入框,當(dāng)爬取完畢后,界面下方通知欄會(huì)提示爬取完畢,并且下方qtpandastable控件,即pandas表格會(huì)顯示爬取下來的數(shù)據(jù)結(jié)果,該表格為pandas與PyQt5的擴(kuò)展庫(kù)生成,用于讀取CSV文件并且支持增刪改,點(diǎn)擊edit即可進(jìn)行編輯,表格右側(cè)數(shù)據(jù)初始化按鈕為一次爬取后數(shù)據(jù)的備份,如果不小心修改了表格并且沒有點(diǎn)擊保存數(shù)據(jù)可以點(diǎn)擊初始化還原,點(diǎn)擊保存數(shù)據(jù)后就會(huì)把修改后的表格保存到本地文件limtmapdetailfly.csv中。設(shè)置爬蟲參數(shù)后點(diǎn)擊開始爬取按鈕后效果如圖7.5-2所示: 圖7.5-2點(diǎn)擊開始爬取后效果圖點(diǎn)擊生成圖表按鈕將會(huì)跳出新窗口生成新圖表,展示爬取下來的數(shù)據(jù)的航班在地圖上的位置,該功能為圖表分析中的一個(gè)功能,代碼將在下文圖表分析部分介紹,地圖圖表為動(dòng)態(tài)圖,本文中只能展示靜態(tài)圖,將鼠標(biāo)放在飛機(jī)圖標(biāo)上可以顯示航班號(hào)和地理坐標(biāo)位置,支持滾輪放大放小,效果圖如圖7.5-3所示:圖7.5-3實(shí)時(shí)航班地圖展示 圖7.5-2右上方為輸入航班號(hào)獲取飛機(jī)航程具體數(shù)據(jù),在輸入框中輸入或不輸入航班號(hào)點(diǎn)擊獲取按鈕后可以進(jìn)入到具體航班飛行歷史展示模塊,進(jìn)入新窗體,即進(jìn)入具體航班飛行歷史展示模塊界面。該部分的該模塊和上文中浦東虹橋機(jī)場(chǎng)介紹的模塊為同類型模塊,在此同一介紹。在右上方輸入航班號(hào)點(diǎn)擊獲取后,效果圖如圖7.5-4和圖7.5-5所示:圖7.5-4輸入航班號(hào)圖7.5-5航班飛行歷史展示模塊界面如上圖7.5-5所示,輸入的航班號(hào)會(huì)預(yù)設(shè)置在航班號(hào)輸入欄,點(diǎn)擊查詢航班號(hào)后,將會(huì)對(duì)輸入的航班號(hào)的相關(guān)數(shù)據(jù)進(jìn)行爬蟲爬取數(shù)據(jù),并且存入數(shù)據(jù)庫(kù)相應(yīng)的表中(如庫(kù)中無表將會(huì)創(chuàng)建表,表名為航班號(hào)),數(shù)據(jù)將展示在下方表格中,點(diǎn)擊查詢航班號(hào)按鈕后如圖7.5-6所示:圖7.5-6點(diǎn)擊查詢航班號(hào)按鈕效果圖點(diǎn)擊按鈕后如上圖,將會(huì)在上方的對(duì)應(yīng)項(xiàng)中顯示目前時(shí)間最接近現(xiàn)實(shí)時(shí)間的一次航班航次記錄。點(diǎn)擊生成當(dāng)前航次路線圖后,將根據(jù)左側(cè)的航行ID,調(diào)用上文爬蟲設(shè)計(jì)中介紹的飛行軌跡爬蟲模塊函數(shù),對(duì)該次航行的飛行軌跡,即飛行路線數(shù)據(jù)進(jìn)行爬取,并且生成圖表在地圖上展示,或?qū)⒑叫蠭D復(fù)制進(jìn)下方輸入框,點(diǎn)擊生成也可以生成圖表,效果圖如圖7.5-7所示:圖7.5-7實(shí)時(shí)航線展示點(diǎn)擊航班飛行規(guī)律日歷圖按鈕后,將會(huì)對(duì)庫(kù)中該航班號(hào)所有的記錄的起飛時(shí)間進(jìn)行統(tǒng)計(jì)分析,應(yīng)用pandas模塊進(jìn)行整理,生成日歷圖,日歷圖為動(dòng)態(tài)圖,支持左下顏色提示、鼠標(biāo)提示等功能,本文中只能展示靜態(tài)圖,日歷圖上將清楚的顯示該航班一周七天每天的起飛時(shí)間和起飛時(shí)間段以及庫(kù)中數(shù)據(jù)的次數(shù),將鼠標(biāo)放在方框上后可以看到起飛時(shí)間提示和在該時(shí)間段起飛的次數(shù),并且會(huì)幫用戶在圖表標(biāo)題下做出簡(jiǎn)單的總結(jié),代碼將在下文介紹,點(diǎn)擊按鈕后的效果圖如圖7.5-8所示:圖7.5-8點(diǎn)擊按鈕生成圖表效果圖圖表分析模塊圖表分析模塊有許多功能,它們并沒有籠統(tǒng)的在單個(gè)頁(yè)面里,就像上文中所描述的一樣,它們分布在各個(gè)模塊中,因此在放在最后進(jìn)行介紹。在這里將介紹一些重要代碼以及圖表設(shè)計(jì)。首先介紹比較集中的功能,位于浦東虹橋機(jī)場(chǎng)爬取分析模塊部分中的圖表分析模塊,進(jìn)去浦東虹橋機(jī)場(chǎng)分析模塊后點(diǎn)擊相應(yīng)的QtabWidget的分頁(yè),或左側(cè)的按鈕后進(jìn)入到相應(yīng)的界面,如圖7.6-1所示:圖7.6-1圖表分析界面在此界面中你可以點(diǎn)擊按鈕生成不同的圖表,圖表由庫(kù)中的數(shù)據(jù)進(jìn)行一定的分析和處理后根據(jù)一定的規(guī)律生成,用戶可以根據(jù)自己的需求和設(shè)定參數(shù)選擇生成圖表,圖表本身會(huì)反應(yīng)一定的規(guī)律,用戶可以從圖表中發(fā)現(xiàn)或探索一定的規(guī)律。本文第八節(jié)將會(huì)舉例圖表分析模塊的使用以及分析實(shí)例,在本節(jié)只對(duì)圖表生成以及效果圖做介紹。首先介紹左側(cè)的時(shí)間段機(jī)場(chǎng)流量圖,本系統(tǒng)中一共可以生成三種時(shí)間段折線圖,分別為單日,一周,某月三種時(shí)間段,用戶可以填入自己需要的時(shí)間段數(shù)據(jù),點(diǎn)擊按鈕,系統(tǒng)將自動(dòng)生成圖表并彈出。三種折線圖的設(shè)計(jì)上大體相同,且分析部分也區(qū)別不大,但代碼量冗長(zhǎng),因此以分析單日浦東虹橋機(jī)場(chǎng)航班流量折線圖為例。分析單日浦東虹橋航班流量效果圖如圖7.6-2所示:圖7.6-2單日折線圖生成圖表的函數(shù)代碼存放在onedayflowanalysis.py文件中,通過sql查詢語句訪問數(shù)據(jù)庫(kù),查詢指定時(shí)間的航班航次數(shù)量,根據(jù)每小時(shí)時(shí)間段來統(tǒng)計(jì)各個(gè)機(jī)場(chǎng)入港離港每小時(shí)的流量,存放在數(shù)組中用于生成圖表備用,例如浦東機(jī)場(chǎng)入港按小時(shí)段流量統(tǒng)計(jì)如圖7.6-3所示:圖7.6-3浦東機(jī)場(chǎng)入港流量分小時(shí)統(tǒng)計(jì)類似的本函數(shù)中的代碼還有浦東機(jī)場(chǎng)離港流量分小時(shí)統(tǒng)計(jì),虹橋機(jī)場(chǎng)入港流量分小時(shí)統(tǒng)計(jì),虹橋機(jī)場(chǎng)離港流量分小時(shí)統(tǒng)計(jì)。生成圖表使用了Pyechart中的折線圖,生成圖表的關(guān)鍵代碼如圖7.6-4所示,生成的圖表保存在本系統(tǒng)文件夾中的drawmap文件夾中,文件名為line_base.html。圖7.6-4生成折線圖關(guān)鍵代碼與此類似的代碼還有分析一周航班流量折線圖和分析某月航班流量折線圖,他們的代碼分別存放在oneweekflowanalysis.py和onemonthflowanalysis.py中,因代碼冗長(zhǎng)并且與上述分析單日流量的代碼類似,因此在此只展示生成圖表關(guān)鍵代碼和效果圖。圖7.6-5為分析一周航班流量折線效果圖,圖7.6-6為生成圖表關(guān)鍵代碼,圖7.6-7為分析某月航班流量折線效果圖,圖7.6-8為生成圖表關(guān)鍵代碼。圖7.6-5一周流量折線圖圖7.6-6關(guān)鍵代碼圖7-6-7某月流量折線圖(編寫時(shí)庫(kù)中數(shù)據(jù)暫時(shí)只有7天)圖7.6-8關(guān)鍵代碼接下來介紹桑基圖,?;鶊D可以直觀的反應(yīng)出各大城市的航班更喜歡飛往哪個(gè)機(jī)場(chǎng),效果圖如圖7.6-9所示,關(guān)鍵代碼如圖7.6-10所示,代碼存放在sankeydraw.py文件中,該圖為動(dòng)態(tài)圖,將鼠標(biāo)放在條例上可以顯示一些基本信息,本文中只能展示靜態(tài)圖。圖7.6-9?;鶊D各大城市聯(lián)通城市TOP10圖7.6-10關(guān)鍵代碼通過生成機(jī)場(chǎng)機(jī)型占比數(shù)量餅圖,我們可以清楚的知道浦東和虹橋機(jī)場(chǎng)中來往航班機(jī)型數(shù)量的占比,效果圖7.6-11所示,關(guān)鍵代碼為圖7.6-12,圖7.6-13和圖7.6-14所示,代碼存放在hotflighttype.py文件中,生成效果圖表為動(dòng)態(tài)圖,文中只能展示靜態(tài)圖。圖7.6-11機(jī)場(chǎng)機(jī)型占比餅圖圖7.6-12關(guān)鍵代碼1圖7.6-13關(guān)鍵代碼2圖7.6-14關(guān)鍵代碼3同時(shí)也可以生成某段時(shí)間內(nèi)機(jī)場(chǎng)熱門航空公司餅圖,了解某段時(shí)間內(nèi)哪一家航空公司在該機(jī)場(chǎng)的航班最多。效果圖如圖7.6-15所示,關(guān)鍵代碼如圖7.6-16所示,代碼存放在hottitledraw.py文件中。圖7.6-15機(jī)場(chǎng)熱門公司TOP10餅圖圖7.6-16關(guān)鍵代碼可以生成柱狀圖和餅狀圖綜合圖表來詳細(xì)分析各大熱門航空公司與熱門機(jī)型的關(guān)系,以浦東機(jī)場(chǎng)為例,生成的綜合圖表效果圖如圖7.6-17,關(guān)鍵代碼如圖7.6-18所示,代碼存放在barandpiedraw.py文件中。圖7.6-17綜合圖表效果圖圖7.6-18關(guān)鍵代碼接下來介紹分布在各個(gè)模塊中的圖表分析功能,首先介紹位于航班航次查詢展示模塊中的航線展示模塊,通過設(shè)定時(shí)間段參數(shù),生成圖表該時(shí)間段內(nèi)飛往機(jī)場(chǎng)或離開機(jī)場(chǎng)飛往世界各地在地圖上展示航線,該圖表劃分四種,分別為浦東機(jī)場(chǎng)入港航線圖、浦東機(jī)場(chǎng)離港航線圖、虹橋機(jī)場(chǎng)入港航線圖、虹橋機(jī)場(chǎng)離港航線圖,代碼存放在pvgamapdraw.py,pvgdmapdraw.py,shaamapdraw.py,shadmapdraw.py四個(gè)文件中,下圖以浦東機(jī)場(chǎng)入港焊線圖為例為例,如設(shè)定參數(shù)圖7.6-19,效果圖7.6-20,關(guān)鍵代碼如圖7.6-21所示:圖7.6-19參數(shù)設(shè)定圖圖7.6-20浦東機(jī)場(chǎng)入港航線圖圖7.6-21關(guān)鍵代碼實(shí)時(shí)航班地圖展示功能位于實(shí)時(shí)爬取分析模塊中,是圖表分析模塊的功能之一,更具設(shè)定的經(jīng)緯度參數(shù)范圍來展示實(shí)時(shí)爬取下來的航班在地圖上的具體位置,根據(jù)經(jīng)緯度的范圍大小不同,生成的地圖也不同,分為中國(guó)地圖和世界地圖,代碼存放在allflightdraw.py文件中,效果圖如圖7.6-22和圖7.6-23所示,關(guān)鍵代碼如圖7.6-24所示:圖7.6-22實(shí)時(shí)航班地圖中國(guó)地圖圖7.6-23實(shí)時(shí)航班地圖世界地圖圖7.6-24關(guān)鍵代碼最后是具體航班的航線展示功能,位于具體航班飛行歷史展示模塊中,是圖表分析的功能之一,在上文中有過介紹,代碼存放在draw.py文件中,效果圖位圖7.6-25所示,關(guān)鍵代碼如圖7.6-26所示:圖7.6-25具體航班航線展示效果圖圖7.6-26關(guān)鍵代碼系統(tǒng)測(cè)試與分析應(yīng)用首先進(jìn)入系統(tǒng),開始測(cè)試實(shí)時(shí)爬取分析模塊,點(diǎn)擊右側(cè)按鈕,進(jìn)去模塊,如圖8-1和圖8-2所示:圖8-1開始界面圖8-2進(jìn)入實(shí)時(shí)爬取分析模塊我們爬取上海臨港地區(qū)的實(shí)時(shí)航班數(shù)據(jù),測(cè)試時(shí)間2021年5月7日15時(shí)54分,經(jīng)緯度設(shè)置以及爬取結(jié)果如圖8-3所示:圖8-3爬取臨港地區(qū)實(shí)時(shí)航班數(shù)據(jù)可以從上圖看到共有5架航班目前在臨港地區(qū)附近飛行,我們點(diǎn)擊生成圖表查看位置。如圖8-4所示圖8-4臨港地區(qū)實(shí)時(shí)航班我們將表中記錄刪除至只剩兩行后點(diǎn)擊保存數(shù)據(jù),再次點(diǎn)擊生成圖表查看航班位置,生成的圖表上只有兩架飛機(jī),說明保存數(shù)據(jù)成功,如圖8-5和圖8-6所示:圖8-5刪除數(shù)據(jù)后點(diǎn)擊保存數(shù)據(jù)圖8-6再次生成的圖表點(diǎn)擊圖8-5中的獲取按鈕,進(jìn)入具體航班數(shù)據(jù)查詢界面,我們爬取上圖中的航班號(hào)CSN9673航班記錄,如圖8-7所示:圖8-7爬取航班號(hào)CSN9673的記錄點(diǎn)擊生成當(dāng)前航次路線圖來查看該航班此時(shí)的飛行路線圖,如圖8-8所示:圖8-8CSN9673當(dāng)前航次飛行軌跡由于該航班網(wǎng)站的上的記錄過少,我們更換航班號(hào)為AAL9700來分析該航班的起飛規(guī)律,點(diǎn)擊生成航班飛行規(guī)律日歷圖來了解該航班的起飛規(guī)律如圖8-9,由圖可知這架飛機(jī)在記錄中每周周一至周日都有航程,并且該航班通常在每天的22:00起飛,少數(shù)在19:00起飛,作為用戶,如果我想購(gòu)買該航班的機(jī)票,我可以清楚的通過圖表知道該航班通常一周七天都有航次,并且該航班通常在晚上10點(diǎn)起飛。圖8-9日歷圖接下來測(cè)試機(jī)場(chǎng)爬取分析部分,從開始界面點(diǎn)擊左側(cè)按鈕,進(jìn)入機(jī)場(chǎng)爬取分析模塊如圖8-10所示:圖8-10機(jī)場(chǎng)爬取與分析界面點(diǎn)擊刷新來查看一下浦東機(jī)場(chǎng)入港庫(kù)中現(xiàn)有的數(shù)據(jù),如圖8-11所示:圖8-11點(diǎn)擊刷新分別根據(jù)ID和航班號(hào)來查詢一下數(shù)據(jù),如圖8-12和圖8-13所示:圖8-12查詢ID圖8-13查詢航班號(hào)設(shè)定時(shí)間2021年5月1日0點(diǎn)和2021年5月1日6:00,點(diǎn)擊顯示查看航班路線展示,如圖8-14和圖8-15所示:圖8-14設(shè)定參數(shù)圖8-15航線圖點(diǎn)擊獲取按鈕進(jìn)入航班具體數(shù)據(jù)模塊界面,如圖8-16所示:圖8-16點(diǎn)擊獲取進(jìn)入界面進(jìn)入爬蟲界面,設(shè)定爬蟲參數(shù)開始爬取數(shù)據(jù),可以看到后臺(tái)輸出爬取的數(shù)據(jù),如圖8-17和圖8-18所示:圖8-17設(shè)定參數(shù)點(diǎn)擊按鈕圖8-18開始爬取數(shù)據(jù)點(diǎn)擊圖表分析按鈕進(jìn)入圖表分析模塊,如圖8-19,首先我們分析一下五一假期的航班流量,想必航班流量一定大增,我們生成五月一日的分時(shí)航班流量,如圖8-20所示:圖8-19進(jìn)入圖表分析界面圖8-20五一單日分時(shí)流量折線圖從上圖中可以清楚地看出在2021年5月一日這一天,虹橋機(jī)場(chǎng)和浦東機(jī)場(chǎng)的入港離港分時(shí)流量,我們首先分析一下浦東機(jī)場(chǎng),我們點(diǎn)擊上方按鈕來關(guān)閉兩條虹橋機(jī)場(chǎng)的折線,如圖8-21所示:圖8-21關(guān)閉虹橋相關(guān)折線圖由上圖可知,這一天較多的航班入港和離港時(shí)間都是在早上9點(diǎn)之后,圖中曲線有一個(gè)明顯的攀升,入港航班峰值最高的時(shí)間段位下午15點(diǎn)~16點(diǎn),數(shù)量為48航班;離港航班峰值最高的時(shí)間段為晚上19點(diǎn)~20點(diǎn),數(shù)量為37航班。再打開虹橋的折線進(jìn)行對(duì)比,如圖8-22所示,虹橋機(jī)場(chǎng)較多的航班入港時(shí)間和離港時(shí)間也是在早上9點(diǎn)之后,與浦東機(jī)場(chǎng)的規(guī)律相同,但無論是入港峰值還是離港峰值,都沒有浦東機(jī)場(chǎng)高,并且整天流量也沒有浦東機(jī)場(chǎng)高,折線對(duì)比如圖8-20所示,可見在五月一日這一天,浦東機(jī)場(chǎng)的航班流量更大,可以推測(cè)更多的人偏愛購(gòu)買浦東機(jī)場(chǎng)相關(guān)的機(jī)票。圖8-22虹橋機(jī)場(chǎng)五月一日折線圖我們?cè)賮矸治鑫逡恍¢L(zhǎng)假整體的航班流量,設(shè)定參數(shù)后點(diǎn)擊生成按鈕,如圖8-23所示:圖8-23五一長(zhǎng)假流量折線圖(等數(shù)據(jù)改)由上圖可知,虹橋與浦東機(jī)場(chǎng)在五月一日這一天的航班流量是均為最高,并且從圖中可以明顯看出浦東機(jī)場(chǎng)的入港出港航班流量?jī)蓷l折線明顯高于虹橋機(jī)場(chǎng),即浦東機(jī)場(chǎng)的流量在五一小長(zhǎng)假大于虹橋氣場(chǎng);整體曲線呈現(xiàn)頂峰下降再上升再下降的趨勢(shì),因?yàn)榇蠖嗳顺鲂卸际俏逶乱蝗粘霭l(fā),在假期收假的五月五日購(gòu)買機(jī)票飛回,所以可以看到四條折線在五月五日這一天有所回升,假期結(jié)束后即五月六日和五月七日,折線開始回落?,F(xiàn)在我們來分析一下五一小長(zhǎng)假期間熱門航班公司和機(jī)型。設(shè)定時(shí)間參數(shù),點(diǎn)擊生成圖表來生成五一小長(zhǎng)假期間最熱門的航班公司TOP10餅狀圖,如圖8-24和圖8-25所示:圖8-24設(shè)定參數(shù)圖圖8-25五一期間(5/1-5/5)熱門航班公司餅狀圖由圖可知浦東和虹橋機(jī)場(chǎng)在五一期間的熱門航班公司TOP10均為中國(guó)的航空公司,并且兩個(gè)機(jī)場(chǎng)均為中國(guó)東方航空公司最為熱門,浦東機(jī)場(chǎng)占比32.31%,航班流量為1553條,虹橋機(jī)場(chǎng)占比35.42%,航班流量為1224條。可見中國(guó)東方航空公司深受大家喜愛。我們還可以通過餅狀圖的大小和占比比對(duì),相同航空公司,如吉祥航空公司,在浦東機(jī)場(chǎng)較虹橋機(jī)場(chǎng)更受歡迎,而上海航空公司在虹橋機(jī)場(chǎng)較浦東機(jī)場(chǎng)更受歡迎。我們?cè)俜治鲆幌聼衢T機(jī)型,同樣分析時(shí)間為五一期間,點(diǎn)擊生成按鈕生成餅狀圖如圖8-26所示:圖8-26熱門機(jī)型TOP10由圖可知,兩機(jī)場(chǎng)在五一期間最熱門的機(jī)型為A320,A320為人們常說的中機(jī)型航班飛機(jī),載客為180人左右,機(jī)票價(jià)格通常較大機(jī)型便宜,并且適合中短途飛行(如國(guó)內(nèi)飛行),因此在圖中占比最大也在意料之中。在餅圖中熱門機(jī)型多為中型機(jī),但也有大型機(jī)上熱門榜,如B77W。接下來我們生成熱門航空公司熱門機(jī)型五一期間流量綜合圖來查看整體情況,以浦東機(jī)場(chǎng)為例,如圖8-27所示:圖8-27綜合圖例這樣來看就可以知道很多信息了,先從中國(guó)東方航空公司入手,可見在浦東機(jī)場(chǎng)中國(guó)東方航空公司在五一期間完全沒有使用熱門機(jī)型中B77L和A330的航班,他們的航班數(shù)量為零,并且中國(guó)東方航空公司的A320航班流量遠(yuǎn)遠(yuǎn)超出其他熱門機(jī)型,而吉祥航空公司除了使用A320和A321機(jī)型的航班在流通浦東機(jī)場(chǎng),使用其他熱門機(jī)型的航班完全沒有,中國(guó)春秋航空公司更是只有使用機(jī)型A320的航班流通在浦東機(jī)場(chǎng)。上海航空公司則沒有航班使用最熱門的A320機(jī)型在五一期間流通于浦東機(jī)場(chǎng),使用的是次于A320熱門的B738,B738同樣為中型機(jī)。中國(guó)南方航空公司在五一期間流通于浦東機(jī)場(chǎng)最多的則是A321機(jī)型。更多的信息在此不再贅述。在了解完熱門公司和熱門機(jī)型以后,我們也像了解一下五一期間(5.1-5.5)與浦東機(jī)場(chǎng)和虹橋機(jī)場(chǎng)來往最多的城市(從該城市飛往浦東或虹橋),我們?cè)O(shè)定時(shí)間點(diǎn)擊生成?;鶊D按鈕,生成的效果圖如圖8-28和圖8-29所示:圖8-28聯(lián)通城市TOP10?;鶊D1圖8-29聯(lián)通城市TOP10?;鶊D2在上文的分析中我們可知,浦東機(jī)場(chǎng)的流量在五一期間基本是大于虹橋機(jī)場(chǎng)的,但如上兩圖中,飛往的虹橋航班要多于飛往浦東的航班。我們觀察圖表發(fā)現(xiàn)雖然浦東機(jī)場(chǎng)的航班流量在上文中比較大,但是飛往浦東機(jī)場(chǎng)的航班來源地非常多,且前十名的來源地的航班數(shù)量都相差不大(將鼠標(biāo)移至圖表分支上可以看到數(shù)量),因此在此圖表中總和就較少。

溫馨提示

  • 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)論