版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(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項(xiàng)目背景1
1.2開(kāi)發(fā)環(huán)境與工具2
1.2.1Python簡(jiǎn)介2
1.2.2PyCharm簡(jiǎn)介2
1.2.3Jypyternotebook簡(jiǎn)介3
1.2.4Python部分第三方庫(kù)與包簡(jiǎn)介3
2需求分析4
2.1可行性需求分析4
2.1.1技術(shù)可行性4
2.1.2項(xiàng)目可行性5
2.2采集目標(biāo)功能分析5
2.3技術(shù)分析6
2.3.1網(wǎng)絡(luò)爬蟲(chóng)技術(shù)6
2.3.2文件存取技術(shù)6
2.3.3可視化技術(shù)7
3數(shù)據(jù)采集8
3.1采集頁(yè)面分析8
3.2字段分析11
3.3編程實(shí)現(xiàn)14
4數(shù)據(jù)清洗與處理19
4.1數(shù)據(jù)清洗19
4.2數(shù)據(jù)儲(chǔ)存21
4.3完整代碼實(shí)現(xiàn)22
5數(shù)據(jù)可視化與分析24
5.1前期準(zhǔn)備24
5.2數(shù)據(jù)展示25
I
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
5.2.1行政區(qū)平方新房單價(jià)分析25
5.2.2新房戶型占比分析26
5.2.3新房數(shù)量占比分析27
5.3本章小結(jié)28
6小結(jié)28
參考資料28
II
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
房天下網(wǎng)站長(zhǎng)沙市新房數(shù)據(jù)采集與分析
1引言
隨著互聯(lián)網(wǎng)的發(fā)展以及移動(dòng)互聯(lián)網(wǎng)的興起,信息化社會(huì)的普及,社會(huì)和經(jīng)
濟(jì)的發(fā)展更加快捷,變化也更加多元化。伴隨著經(jīng)濟(jì)、科技及社會(huì)的發(fā)展,人
們生活方式和習(xí)慣也在發(fā)生著巨大的變化。這一切都使得大量的數(shù)據(jù)產(chǎn)生,而
大數(shù)據(jù)技術(shù)也正在發(fā)揮其重要作用。
大數(shù)據(jù)技術(shù)是指結(jié)合了計(jì)算機(jī)科學(xué)、數(shù)據(jù)庫(kù)技術(shù)、統(tǒng)計(jì)學(xué)、計(jì)算機(jī)視覺(jué)等
多種技術(shù),以及大量的數(shù)據(jù),以收集、存儲(chǔ)、處理、分析、可視化等方式,來(lái)
處理海量的數(shù)據(jù),從而更快的獲取有效的信息,更深入的分析數(shù)據(jù),從而支持
決策和發(fā)現(xiàn)新的知識(shí)。大數(shù)據(jù)技術(shù)在許多方面都發(fā)揮著重要作用,如社會(huì)、科
學(xué)、商業(yè)、軍事、教育等。
大數(shù)據(jù)技術(shù)的發(fā)展已經(jīng)帶來(lái)了智能化的生活方式,如智能家居、智能機(jī)器
人、自動(dòng)駕駛等。這些技術(shù)的發(fā)展,不僅可以改善人們的日常生活,還可以提
高工作效率,減少工作量,節(jié)省時(shí)間。智能化的生活,讓人們的日常生活變得
更加便捷,更加舒適。大數(shù)據(jù)技術(shù)的發(fā)展也為社會(huì)發(fā)展提供了更多的可能性,
它可以更好的幫助人們解決復(fù)雜的問(wèn)題,推動(dòng)社會(huì)進(jìn)步。
1.1項(xiàng)目背景
近幾年來(lái),隨著信息技術(shù)的發(fā)展,大量的房產(chǎn)信息集中在國(guó)內(nèi)房產(chǎn)網(wǎng)站之
一的房天下上。不論是買房還是租房,或是投資房市,房天下都能提供極具參
考價(jià)值的最新房地產(chǎn)信息,并且擁有龐大的數(shù)據(jù)量。因此有必要對(duì)房天下上收
集的房產(chǎn)信息進(jìn)行采集與分析,以有效地挖掘有價(jià)值的信息和結(jié)論。
本次畢業(yè)設(shè)計(jì)的任務(wù)是利用python編程語(yǔ)言,通過(guò)爬蟲(chóng)技術(shù)完成對(duì)房天下
網(wǎng)站上的數(shù)據(jù)的采集,并通過(guò)相關(guān)的分析工具,對(duì)其中的信息進(jìn)行數(shù)據(jù)清洗與
處理,以獲取有效信息。另外本次采用的還有數(shù)據(jù)可視化技術(shù)手段,有助于更
好地理解相關(guān)數(shù)據(jù)。
本次畢業(yè)設(shè)計(jì)將在Python語(yǔ)言作為技術(shù)支持,借助網(wǎng)絡(luò)爬蟲(chóng)、數(shù)據(jù)清洗、
數(shù)據(jù)可視化等多種技術(shù)手段,對(duì)房天下網(wǎng)站上的數(shù)據(jù)采集與分析,找出有價(jià)值
的結(jié)論,從而對(duì)房地產(chǎn)市場(chǎng)有有效、準(zhǔn)確地分析,從而有助于投資者和買賣雙
方做出更佳的決策。
1
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
1.2開(kāi)發(fā)環(huán)境與工具
1.2.1Python簡(jiǎn)介
Python是一種面向?qū)ο蟮慕忉屝陀?jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,由Guidovan
Rossum于1989年發(fā)明,第一個(gè)公開(kāi)發(fā)行版發(fā)行于1991年。Python是純粹的自
由軟件,源代碼和解釋器CPython遵循GPL(GNUGeneralPublicLicense)協(xié)議。
Python語(yǔ)法簡(jiǎn)潔清晰,特色之一是強(qiáng)制用空白符(whitespace)作為語(yǔ)句縮
進(jìn)。Python具有豐富和強(qiáng)大的庫(kù)。它常被昵稱為膠水語(yǔ)言,能夠把用其他語(yǔ)言
制作的各種模塊(尤其是C/C++)很輕松地聯(lián)結(jié)在一起。
在Python中,代碼段的實(shí)現(xiàn)是通過(guò)函數(shù)和類來(lái)實(shí)現(xiàn)的,這使得代碼更加靈
活和可重用。Python支持多種編程范式,如面向?qū)ο?,函?shù)式,命令式等,這
使得Python適用于不同的編程領(lǐng)域。
Python最初被設(shè)計(jì)用于簡(jiǎn)化系統(tǒng)管理任務(wù),特別是Linux系統(tǒng)管理,但是
現(xiàn)在它已經(jīng)被用于多個(gè)領(lǐng)域,如科學(xué)計(jì)算、網(wǎng)絡(luò)編程、數(shù)據(jù)可視化、游戲開(kāi)發(fā)
等。Python也被廣泛應(yīng)用于企業(yè)級(jí)應(yīng)用開(kāi)發(fā),如ERP、CRM等。
Python的設(shè)計(jì)哲學(xué)是“優(yōu)雅、明確、簡(jiǎn)單”,它擁有極其豐富的標(biāo)準(zhǔn)庫(kù),
支持跨平臺(tái),具有強(qiáng)大的第三方庫(kù),它是一門優(yōu)秀的通用編程語(yǔ)言,深受廣大
開(kāi)發(fā)者和程序員的喜愛(ài)。
1.2.2PyCharm簡(jiǎn)介
PyCharm是一款基于純Python的集成開(kāi)發(fā)環(huán)境(IDE),它被廣泛用于各種
Python開(kāi)發(fā)。PyCharm的核心功能包括編輯、運(yùn)行、調(diào)試、搜索Python代碼。
其內(nèi)置的編輯器用于支持復(fù)雜的選項(xiàng),比如代碼補(bǔ)全、智能提示和代碼重構(gòu),
它可以自動(dòng)檢測(cè)和修復(fù)潛在問(wèn)題,從而提高Python應(yīng)用的性能和可維護(hù)性。
PyCharm不僅支持Python編程,還支持其他編程語(yǔ)言,如HTML、CSS、
JavaScript,它可以在瀏覽器中進(jìn)行調(diào)試,以及在其他編程語(yǔ)言和框架上構(gòu)建
強(qiáng)大的Web應(yīng)用程序。PyCharm提供了許多插件,可定制以滿足任何Python開(kāi)
發(fā)人員的需求。
此外,PyCharm提供了一組和流行數(shù)據(jù)庫(kù)技術(shù)(如MySQL,Oracle等)的強(qiáng)
大工具,可以在數(shù)據(jù)庫(kù)中進(jìn)行編程,如SQL語(yǔ)句編寫(xiě),查詢編寫(xiě)等。
PyCharm的有點(diǎn)和優(yōu)勢(shì)讓它成為一流的PythonIDE。它比其他IDE具有良好
的可擴(kuò)展性,可使用插件來(lái)個(gè)性化Python開(kāi)發(fā)環(huán)境,這樣開(kāi)發(fā)者可以最大程度
2
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
地滿足它們的需求,尤其是大型項(xiàng)目。此外,它具有極快的編譯和調(diào)試速度,
可以極大地提高開(kāi)發(fā)效率,它還有復(fù)雜的檢查和檢查工具,可檢測(cè)Python代碼
中的錯(cuò)誤,從而加快開(kāi)發(fā)時(shí)間。
總的來(lái)說(shuō),PyCharm是一款功能強(qiáng)大的PythonIDE,可以為Python開(kāi)發(fā)人
員提供各種強(qiáng)大的工具,大大提高Python應(yīng)用程序的開(kāi)發(fā)效率,使開(kāi)發(fā)更輕松
高效。
1.2.3Jypyternotebook簡(jiǎn)介
JupyterNotebook是一款基于Web的交互式計(jì)算機(jī)編程環(huán)境,它允許數(shù)據(jù)
科學(xué)家,可視化程序員和其他研究人員輕松地創(chuàng)建,編輯和共享他們的計(jì)算工
作。該工具是基于Python開(kāi)發(fā)的,可以與多種編程語(yǔ)言(例如R,Julia和
JavaScript)集成,可支持實(shí)時(shí)代碼執(zhí)行,可以用圖表進(jìn)行實(shí)時(shí)可視化,并支
持大量文件格式(例如.jpg,.pdf,.md,.xlsx)和數(shù)據(jù)類型(例
如.csv,.json)。
基于Web的交互式環(huán)境使學(xué)生及其他研究者可以在任何計(jì)算機(jī)上開(kāi)發(fā)實(shí)時(shí)
可視化和分析,而不必?fù)碛幸慌_(tái)安裝繁復(fù)的本地計(jì)算機(jī)。該交互式環(huán)境提供了
一個(gè)更直觀的可視化界面來(lái)支持?jǐn)?shù)據(jù)科學(xué),深度學(xué)習(xí)和機(jī)器學(xué)習(xí)的實(shí)時(shí)任務(wù),
同時(shí)能夠進(jìn)行更有效的探索性研究。這種可視化環(huán)境支持大量的表格數(shù)據(jù),文
本文件和文檔,并提供即時(shí)可視化功能,以幫助使用者更深入地了解數(shù)據(jù)。此
外,該環(huán)境可讓人們創(chuàng)建功能強(qiáng)大的在線課程和實(shí)驗(yàn)材料,允許課堂上進(jìn)行實(shí)
時(shí)可視化操作,以及通過(guò)導(dǎo)出分析結(jié)果來(lái)實(shí)現(xiàn)動(dòng)態(tài)可視化效果。
綜上所述,JupyterNotebook為學(xué)生提供了簡(jiǎn)便的可視化分析工具,可以
創(chuàng)建即時(shí)可視化課程和實(shí)驗(yàn),以深入了解數(shù)據(jù)科學(xué)。通過(guò)支持多種編程語(yǔ)言,
大量文件格式和數(shù)據(jù)類型,該工具為實(shí)時(shí)可視化中的分析難題提供了廣泛的可
能性。
1.2.4Python部分第三方庫(kù)與包簡(jiǎn)介
urllib:urllib是Python的一個(gè)用于處理URL的可擴(kuò)展庫(kù)。它定義了一些
類和方法,通過(guò)這些類和方法,可以抓取和處理數(shù)據(jù)、對(duì)URL進(jìn)行編解碼、以
及其他大量用于Web技術(shù)的任務(wù)。由于它為應(yīng)用程序提供了訪問(wèn)Internet的
功能,所以有時(shí)也稱為Internet接口庫(kù)。
BeautifulSoup:BeautifulSoup是一個(gè)可以從HTML或XML文件中提取數(shù)據(jù)
的Python庫(kù)。它可以自動(dòng)將輸入文檔轉(zhuǎn)換為Unicode編碼,并使用簡(jiǎn)單,python
3
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
式解析文檔。它提供具有查找特定元素,提取數(shù)據(jù),操縱樹(shù)形結(jié)構(gòu)等功能,可
以很容易地提取數(shù)據(jù)結(jié)構(gòu)化信息,因此它是網(wǎng)頁(yè)爬蟲(chóng)開(kāi)發(fā)的好幫手。
re:re是Python的一個(gè)正則表達(dá)式庫(kù),它的功能是使用描述文本中的一
些模式的字符組合來(lái)分析和處理文本數(shù)據(jù)。它有一個(gè)叫compile的函數(shù),可以
編譯一個(gè)正則表達(dá)式模式,這個(gè)模式可以在文本中進(jìn)行搜索和替換,支持多種
模式選項(xiàng),因此,它是處理非結(jié)構(gòu)化數(shù)據(jù)的非常好的幫助。
random:random是Python中一個(gè)常用的模塊,用于產(chǎn)生隨機(jī)數(shù)。它提供
了一系列函數(shù),可以生成隨機(jī)數(shù),打亂序列順序等,是機(jī)器學(xué)習(xí)和數(shù)據(jù)科學(xué)中
常用的工具,可以很好地幫助實(shí)現(xiàn)類似隨機(jī)采樣和誤差分析等操作。
tqdm:tqdm是一個(gè)Python庫(kù),用于構(gòu)建一個(gè)可視化進(jìn)度條,可以讓用戶
能夠查看當(dāng)前執(zhí)行任務(wù)的進(jìn)度。它在處理循環(huán)和迭代等計(jì)算密集型任務(wù)時(shí)非常
有用,可以幫助用戶更好地了解任務(wù)的運(yùn)行進(jìn)度,是一個(gè)不可或缺的工具。
gzip:gzip是一種壓縮文件的程序,可以有效減少文件的大小,從而節(jié)省
磁盤(pán)空間。它可以將大型文件壓縮到只有原文件大小的一小部分,同時(shí)保持原
始文件的質(zhì)量和內(nèi)容。它還可以用于安全加密,以防止文件被未經(jīng)授權(quán)的用戶
訪問(wèn)。
panda:panda是Python的一個(gè)數(shù)據(jù)處理庫(kù),有助于快速方便地處理數(shù)據(jù)。
它提供了高級(jí)數(shù)據(jù)結(jié)構(gòu)和工具,可以輕松快速地處理結(jié)構(gòu)化和時(shí)間序列數(shù)據(jù),
讓用戶可以節(jié)省大量時(shí)間和精力,是許多分析工作不可或缺的一部分。
Matplotlib.pyplot:Matplotlib.pyplot是一個(gè)基于matplotlib庫(kù)的
python圖形繪制圖形的模塊,它可以繪制出各種靜態(tài)或動(dòng)態(tài)圖形,如線圖、條
形圖、曲線圖、餅圖等。
2需求分析
2.1可行性需求分析
2.1.1技術(shù)可行性
Python語(yǔ)言聲明性、具有高度可擴(kuò)展性,在數(shù)據(jù)分析、獲取、清洗、預(yù)處
理、可視化中得到了廣泛的使用。
在使用Python編寫(xiě)程序來(lái)實(shí)現(xiàn)對(duì)房天下數(shù)據(jù)的獲取、清洗、預(yù)處理、可視
化的技術(shù)可行性的問(wèn)題上,我們可以主要基于以下三個(gè)方面:一、數(shù)據(jù)獲取,
通過(guò)Python編寫(xiě)靜態(tài)爬蟲(chóng)程序,可以獲取房天下數(shù)據(jù)。二、數(shù)據(jù)清洗,使用
4
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
Python中的pandas庫(kù)和re庫(kù),可以實(shí)現(xiàn)多種數(shù)據(jù)處理操作,實(shí)現(xiàn)對(duì)房天下數(shù)
據(jù)的清洗加工和預(yù)處理操作。三、可視化,使用Python中的Matplotlib庫(kù),
可以實(shí)現(xiàn)數(shù)據(jù)可視化處理。
綜上所述,使用Python編程來(lái)實(shí)現(xiàn)對(duì)房天下數(shù)據(jù)的獲取、清洗、預(yù)處理、
可視化,具有很高的技術(shù)可行性。
2.1.2項(xiàng)目可行性
房天下網(wǎng)站上提供了大量的住房信息數(shù)據(jù),可以用于數(shù)據(jù)采集和分析。房
天下網(wǎng)是國(guó)內(nèi)最大的房地產(chǎn)網(wǎng)站,注冊(cè)用戶超過(guò)4000萬(wàn),每天瀏覽量超過(guò)3億
次。網(wǎng)站統(tǒng)計(jì)的全部住房信息數(shù)據(jù)覆蓋著全國(guó)所有城市的住房信息,包括價(jià)格、
面積、所在行政區(qū)以及相關(guān)的政策等,涵蓋的項(xiàng)目都是及其全面且詳盡的,可
以滿足各種類型的住房分析需求,可以更好地提升數(shù)據(jù)采集分析項(xiàng)目的可行性。
此外,網(wǎng)站版本也在不斷更新,為用戶提供各種關(guān)于房屋信息的查詢服務(wù),
包括住房?jī)r(jià)格趨勢(shì)、新房信息、租房信息以及房屋貸款等相關(guān)信息,因此,很
容易獲取大量數(shù)據(jù),并進(jìn)行深入的分析,從而大大提升了項(xiàng)目的可行性。
總之房天下網(wǎng)站提供了多種可分析數(shù)據(jù),能夠?yàn)閿?shù)據(jù)分析項(xiàng)目收集大量有
價(jià)值的數(shù)據(jù),因此該項(xiàng)目是非常可行的。
2.2采集目標(biāo)功能分析
本次項(xiàng)目的數(shù)據(jù)集來(lái)自房天下網(wǎng),是通過(guò)python爬取長(zhǎng)沙的新房的房屋信
息。通過(guò)數(shù)據(jù)清洗,共獲取了660條新房數(shù)據(jù)。為保證爬取的數(shù)據(jù)的準(zhǔn)確性,
采取了一系列的措施,對(duì)爬取出來(lái)的數(shù)據(jù)進(jìn)行了詳細(xì)的檢查,確保爬取出來(lái)的
數(shù)據(jù)無(wú)誤,并且能夠滿足本次研究要求。本次爬取的總數(shù)據(jù)條數(shù)達(dá)到660條,
這些數(shù)據(jù)會(huì)在分析過(guò)程中進(jìn)行有效利用,為本次項(xiàng)目提供可靠的結(jié)果。
為了對(duì)房天下網(wǎng)站網(wǎng)頁(yè)信息進(jìn)行分析,首先要明確我們需要爬取的新房
房屋參數(shù),新房參數(shù)有名稱、戶型、面積、地址、價(jià)格;在進(jìn)行數(shù)據(jù)清洗之后,
對(duì)數(shù)據(jù)進(jìn)行多維度分析可以讓我們更利于了解房源信息變化情況,達(dá)到如何購(gòu)
買投資的目的,如行政區(qū)以及價(jià)格(元/㎡)分析,可以查看每個(gè)行政區(qū)最高新房
單價(jià),從而判斷出哪個(gè)行政區(qū)新房?jī)r(jià)格較貴,哪個(gè)行政區(qū)新房?jī)r(jià)格較為實(shí)惠;
此外,我們也可以分析某個(gè)行政區(qū)的新房數(shù)量占比,根據(jù)其新房數(shù)量占比來(lái)評(píng)
估該行政區(qū)投資價(jià)值,從而判斷出哪個(gè)房屋新房投資較為有利,哪個(gè)行政區(qū)投
資較為不利,讓用戶可以據(jù)此做出投資理財(cái)收益最大化的決定。
5
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
2.3技術(shù)分析
2.3.1網(wǎng)絡(luò)爬蟲(chóng)技術(shù)
網(wǎng)絡(luò)爬蟲(chóng)是計(jì)算機(jī)信息獲取的一種重要技術(shù)。網(wǎng)絡(luò)爬蟲(chóng)也稱為網(wǎng)絡(luò)蜘蛛、
Web爬蟲(chóng)、螞蟻采集等,通過(guò)自動(dòng)抓取網(wǎng)絡(luò)上的信息,并建立相應(yīng)的數(shù)據(jù)庫(kù),是
一種數(shù)據(jù)抓取實(shí)現(xiàn)的技術(shù)。
要實(shí)現(xiàn)網(wǎng)絡(luò)爬蟲(chóng)需要考慮的因素:首先,爬蟲(chóng)的頁(yè)面發(fā)現(xiàn),它抓取網(wǎng)頁(yè)中
的URL,并建立一個(gè)URL隊(duì)列,讓爬蟲(chóng)去爬??;其次,爬蟲(chóng)的數(shù)據(jù)抓取,它從網(wǎng)
絡(luò)上獲取所需要的數(shù)據(jù);再次,爬蟲(chóng)的文件處理,它將網(wǎng)頁(yè)上的內(nèi)容保存到本
地硬盤(pán)中,或者使用簡(jiǎn)單的分析進(jìn)行文本抽??;最后,爬蟲(chóng)的數(shù)據(jù)導(dǎo)出,將抽
取的數(shù)據(jù)保存到數(shù)據(jù)庫(kù)或者文件中,進(jìn)行分析和處理。
網(wǎng)絡(luò)爬蟲(chóng)可以自動(dòng)抓取當(dāng)前的網(wǎng)頁(yè)信息,也可以實(shí)現(xiàn)定時(shí)的數(shù)據(jù)抓取。目
前,常用的網(wǎng)絡(luò)爬蟲(chóng)主要有Python的Scrapy、BeautifulSoup4、Selenium等。
本項(xiàng)目使用的是BeautifulSoup4。這些常用的網(wǎng)絡(luò)爬蟲(chóng)的使用包括模擬HTTP請(qǐng)
求、解析HTML文件等,讓爬蟲(chóng)可以訪問(wèn)網(wǎng)絡(luò)上的信息,從而把數(shù)據(jù)自動(dòng)抓取到
本地。
網(wǎng)絡(luò)爬蟲(chóng)分析有許多方面。首先,在實(shí)施網(wǎng)絡(luò)爬蟲(chóng)抓取之前,要清楚網(wǎng)絡(luò)
爬蟲(chóng)的性能要求:爬蟲(chóng)抓取數(shù)據(jù)的量、反應(yīng)時(shí)間以及響應(yīng)網(wǎng)頁(yè)數(shù)量等;其次,
要考慮網(wǎng)絡(luò)爬蟲(chóng)抓取的準(zhǔn)確性和穩(wěn)定性,即可靠性;再次,要考慮到由網(wǎng)絡(luò)爬
蟲(chóng)抓取數(shù)據(jù)的準(zhǔn)確性,保證抓取到的內(nèi)容可被正確處理;最后,要注意網(wǎng)絡(luò)爬
蟲(chóng)抓取時(shí)所造成的負(fù)載問(wèn)題,以及如何優(yōu)化網(wǎng)絡(luò)爬蟲(chóng)抓取的效率,使其達(dá)到最
佳狀態(tài)。
因此,在實(shí)現(xiàn)網(wǎng)絡(luò)爬蟲(chóng)時(shí),要注意很多問(wèn)題,包括數(shù)據(jù)抓取的準(zhǔn)確性和性
能要求,以及存在的負(fù)載問(wèn)題。
2.3.2文件存取技術(shù)
DataFrame對(duì)象的to_excel方法如圖2-1顯示:
6
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
圖2-1DataFrame對(duì)象的to_excel方法
2.3.3可視化技術(shù)
可視化技術(shù)是根據(jù)傳統(tǒng)圖形學(xué),交互式圖形和計(jì)算機(jī)科學(xué)理論而發(fā)展起來(lái)
的一種實(shí)現(xiàn)信息報(bào)表、分析和展示的新型技術(shù)。可視化技術(shù)可以把復(fù)雜的數(shù)據(jù)
和信息轉(zhuǎn)換為圖表、條形圖等非常有趣而抽象的圖形,進(jìn)而將數(shù)據(jù)和信息可視
化。
由于可視化技術(shù)運(yùn)用了多種數(shù)字、圖形和文本,借助技術(shù)以及多種插圖、
圖表實(shí)現(xiàn)信息的有效表達(dá),因而在多個(gè)行業(yè)領(lǐng)域得到了廣泛的應(yīng)用。各行業(yè)審
視歷史記錄、探索未來(lái)趨勢(shì)、壓縮大量數(shù)據(jù)源、比較各種數(shù)據(jù)資源等等,都可
以通過(guò)可視化技術(shù)實(shí)現(xiàn)這些目標(biāo)。
可視化技術(shù)使用很廣泛,不但廣泛應(yīng)用于教育、政府、企業(yè)等各種領(lǐng)域,
而且在工業(yè)界,醫(yī)學(xué)界,社會(huì)科學(xué),技術(shù)界都用到了可視化技術(shù)。
總的來(lái)說(shuō),可視化技術(shù)不僅是一種非常強(qiáng)大的數(shù)據(jù)分析手段,而且還能夠
有效的顯示、處理和存儲(chǔ)數(shù)據(jù)信息。
可視化技術(shù)通過(guò)一組可視的圖表實(shí)現(xiàn)了大量原始數(shù)據(jù)的壓縮,經(jīng)過(guò)統(tǒng)計(jì)分
析,將大量復(fù)雜的信息轉(zhuǎn)化為可視性高、易于理解及處理的數(shù)據(jù)。數(shù)據(jù)展示經(jīng)
過(guò)數(shù)據(jù)處理,可視化技術(shù)可以有效地避免由于樣本量不足而引發(fā)的局部性偏差。
可視化技術(shù)可以顯示出數(shù)據(jù)和模型之間的關(guān)系,結(jié)合圖表和動(dòng)畫(huà),有助于人們
對(duì)數(shù)據(jù)和模型的理解。
隨著數(shù)據(jù)的不斷增長(zhǎng),傳統(tǒng)的信息處理手段顯得不足以解決多樣化的信息
訪問(wèn)和共享任務(wù)。因此,可視化技術(shù)在未來(lái)會(huì)得到進(jìn)一步發(fā)展,同時(shí)還會(huì)受到
人工智能技術(shù)的大力支持,并為各種信息處理和使用任務(wù)提供極大的便利。
此外,未來(lái)可視化技術(shù)還會(huì)進(jìn)一步完善,通過(guò)引入更加智能的模型,幫助
用戶理解、解讀和探索大量數(shù)據(jù),支持大數(shù)據(jù)分析任務(wù)。
7
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
可視化技術(shù)既是對(duì)大空間和大時(shí)間量數(shù)據(jù)進(jìn)行可視化表征,又可以將復(fù)雜
的數(shù)據(jù)抽象到圖形和標(biāo)記上,從而有效地處理大規(guī)模復(fù)雜的數(shù)據(jù),成為大數(shù)據(jù)
分析的重要基礎(chǔ)。未來(lái)可視化技術(shù)將成為科學(xué)家探索、數(shù)據(jù)分析和商業(yè)組織決
策的重要工具,必將受到廣大用戶的熱烈歡迎。
本項(xiàng)目主要使用Python中的Matplotlib庫(kù)畫(huà)出條形圖等簡(jiǎn)單圖形,使結(jié)
果更加直觀,從而得出有用的結(jié)論。
3數(shù)據(jù)采集
3.1采集頁(yè)面分析
訪問(wèn)房天下官網(wǎng)的長(zhǎng)沙新房頁(yè)面,觀察圖3-1、3-2、3-3發(fā)現(xiàn)URL是以
/house/s/b開(kāi)頭,以步長(zhǎng)1遞增的數(shù)字結(jié)尾,
例如91、92、93訪問(wèn)不同頁(yè)面。可以看出URL規(guī)則簡(jiǎn)單明了,變化只需要改變
結(jié)尾數(shù)字就可以實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)。循環(huán)訪問(wèn)的URL也就找出了。
/house/s/b91訪問(wèn)房天下長(zhǎng)沙新房第1頁(yè)。
圖3-1房天下長(zhǎng)沙新房第1頁(yè)
8
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
/house/s/b92訪問(wèn)房天下長(zhǎng)沙新房第2頁(yè)。
圖3-2房天下長(zhǎng)沙新房第2頁(yè)
/house/s/b93訪問(wèn)房天下長(zhǎng)沙新房第3頁(yè)。
圖3-3房天下長(zhǎng)沙新房第3頁(yè)
F12查看頁(yè)面結(jié)構(gòu),發(fā)現(xiàn)每條房屋數(shù)據(jù)都在同一個(gè)ul標(biāo)簽下各個(gè)li標(biāo)簽中。
9
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
ul標(biāo)簽是一頁(yè)的所有數(shù)據(jù)。
圖3-4房天下長(zhǎng)沙新房頁(yè)面結(jié)構(gòu)1
li標(biāo)簽是一條房源信息。
圖3-5房天下長(zhǎng)沙新房頁(yè)面結(jié)構(gòu)2
驗(yàn)證li是一條房源信息。
10
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
圖3-6房天下長(zhǎng)沙新房頁(yè)面結(jié)構(gòu)3
3.2字段分析
觀察單個(gè)li標(biāo)簽發(fā)現(xiàn)所需數(shù)據(jù)都在div.nlc_details下,通過(guò)觀察單個(gè)li
標(biāo)簽,可以得到所需采集的字段包括:名稱、戶型、面積、行政區(qū)和價(jià)格。其
中,名稱通過(guò).nlcd_namea選擇器獲取,戶型和面積則需要進(jìn)行一定的處理,
因?yàn)榭赡艹霈F(xiàn)只有戶型或只有面積的情況。行政區(qū)通過(guò).addressspan.sngrey
選擇器獲取,價(jià)格通過(guò)'.nhouse_price加正則表達(dá)式獲取。
11
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
圖3-7字段分析1
12
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
名稱字段分析,位于class為nlcd_name的div下的a標(biāo)簽內(nèi)。
圖3-8字段分析2
戶型與面積字段分析,位于class為house_type的div內(nèi)。
圖3-9字段分析3
13
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
行政區(qū)字段分析,位于class為address的div下,class為sngrey的span
標(biāo)簽內(nèi)。
圖3-10字段分析4
價(jià)格字段分析,位于class為address的div內(nèi)。
圖3-11字段分析5
3.3編程實(shí)現(xiàn)
1.導(dǎo)包
14
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
圖3-12新房數(shù)據(jù)采集1
2.數(shù)據(jù)請(qǐng)求構(gòu)建
圖3-13新房數(shù)據(jù)采集2
3.數(shù)據(jù)解析
15
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
圖3-14新房數(shù)據(jù)采集3
4.數(shù)據(jù)存儲(chǔ)
圖3-15新房數(shù)據(jù)采集4
5.保存文件
圖3-16新房數(shù)據(jù)采集5
6.主函數(shù)
16
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
圖3-17新房數(shù)據(jù)采集6
完整代碼如下:
#_*_coding:utf-8_*_
importurllib
frombs4importBeautifulSoup
importre
importrandom
fromtqdmimporttqdm
importpandasaspd
'''爬取新房數(shù)據(jù)存入excel'''
#數(shù)據(jù)請(qǐng)求構(gòu)建
defdata_request(url):
user_agents=list({
'Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/537.36(KHTML,like
Gecko)Chrome/39.0.2171.95Safari/537.36OPR/26.0.1656.60',
'Opera/8.0(WindowsNT5.1;U;en)',
'Mozilla/5.0(WindowsNT5.1;U;en;rv:1.8.1)Gecko/20061208Firefox/2.0.0
Opera9.50',
'Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;en)Opera9.50',
'Mozilla/5.0(WindowsNT6.1;WOW64;rv:34.0)Gecko/20100101
Firefox/34.0'})
headers={
'Cookie':'',
'User-Agent':str(random.choice(user_agents)),
'Connection':'keep-alive',
17
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
}
req=urllib.request.Request(url,headers=headers)
resp=urllib.request.urlopen(req)
content=resp.read().decode('utf-8')
returncontent
#數(shù)據(jù)解析
defdata_analysis(content):
html=content
soup=BeautifulSoup(content,'html.parser')
returnsoup
#數(shù)據(jù)存儲(chǔ)
defdata_storage(soup):
one_page_data=[]
item_list=soup.select('#newhouse_loupan_list>ul>li')
foriinitem_list:
#{'名稱':None,'戶型':None,'面積':None,'地址':None,'價(jià)格'}
item={}
item['名稱']=i.select('.nlcd_namea')[0].text.strip()
n=len(''.join(i.select('.house_type')[0].text.split()).split('—'))
ifn==0:
item['戶型'],item['面積']='',''
elifn==1:
item['戶型']=''.join(i.select('.house_type')[0].text.split()).split('—')[0]
item['面積']=''
else:
item['戶型'],item['面積']=
''.join(i.select('.house_type')[0].text.split()).split('—')
item['面積']=item['面積'].replace('平米','')
item['行政區(qū)']=i.select('.addressspan.sngrey')
iflen(item['行政區(qū)'])==0:
item['行政區(qū)']=''
else:
item['行政區(qū)']=item['行政區(qū)'][0].text.replace('[','').replace(']','')
item['價(jià)格(元/㎡)']=''.join(re.findall(r'\d',i.select('.nhouse_price')[0].text))
one_page_data.append(item)
returnone_page_data
18
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
#保存文件
defdata_files(all_page_data,save_path):
df=pd.DataFrame(all_page_data)
df.to_excel(save_path)
#主函數(shù)
if__name__=='__main__':
new_all_data=[]
page=33
foriintqdm(range(1,page+1)):
url=f'/house/s/b9{i}/'
content=data_request(url)
soup=data_analysis(content)
one_page_data=data_storage(soup)
new_all_data.extend(one_page_data)
data_files(new_all_data,'../數(shù)據(jù)/房天下新房數(shù)據(jù).xlsx')
4數(shù)據(jù)清洗與處理
數(shù)據(jù)清洗與處理主要是為了使得數(shù)據(jù)更加適合分析和運(yùn)算的要求,把原始
的數(shù)據(jù)轉(zhuǎn)換讓目標(biāo)任務(wù)的分析會(huì)更加容易、準(zhǔn)確。需要注意的是,要使得數(shù)據(jù)
清洗后有高質(zhì)量,就必須充分認(rèn)識(shí)清洗過(guò)程中可能存在的缺陷,并有意于改進(jìn),
充分考慮數(shù)據(jù)類型、空白值、異常值等處理方式。
4.1數(shù)據(jù)清洗
對(duì)房天下新房數(shù)據(jù)的清洗,包括清洗行政區(qū)字段中的\t和\n、處理戶型字
段、處理面積字段、將行政區(qū)字段進(jìn)行統(tǒng)一等。最后按照名稱、戶型、面積、
行政區(qū)、價(jià)格的順序重新排列列的順序,并將清洗后的數(shù)據(jù)存入Excel文件。
1.導(dǎo)包和獲取數(shù)據(jù)
圖4-1新房數(shù)據(jù)清洗1
2.清洗行政區(qū)\t\n
圖4-2新房數(shù)據(jù)清洗2
19
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
3.處理戶型字段
圖4-3新房數(shù)據(jù)清洗3
4.處理面積字段
圖4-4新房數(shù)據(jù)清洗4
20
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
5.錯(cuò)誤數(shù)據(jù)更改
圖4-5新房數(shù)據(jù)清洗5
6.重排columns順序
圖4-6新房數(shù)據(jù)清洗6
4.2數(shù)據(jù)儲(chǔ)存
數(shù)據(jù)的儲(chǔ)存作用在于以可靠、及時(shí)的方式以便隨時(shí)收集和瀏覽。儲(chǔ)存的數(shù)
據(jù)可利用于繪制出視覺(jué)化的統(tǒng)計(jì)圖表,把大量數(shù)據(jù)統(tǒng)籌歸納,可以表達(dá)出更復(fù)
雜的社會(huì)現(xiàn)象,為明智地做出多項(xiàng)決策,提供重要依據(jù)。換言之,數(shù)據(jù)儲(chǔ)存有
效地提供了體積統(tǒng)計(jì)分析手段,幫助決策者及時(shí)把握社會(huì)信息,進(jìn)行合理安排,
以便在最大限度地發(fā)揮有效性??紤]到數(shù)據(jù)量和存儲(chǔ)及使用難易程度該項(xiàng)目使
用excel進(jìn)行存儲(chǔ)。
圖4-7新房清洗后數(shù)據(jù)存儲(chǔ)
每條數(shù)據(jù)有名稱,一居,二居,三居,四居,五居,五居以上,最小面積
(㎡),最大面積(㎡),行政區(qū),價(jià)格(元/㎡)這些字段,共存儲(chǔ)數(shù)據(jù)660條。
21
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
圖4-8存儲(chǔ)數(shù)據(jù)1
圖4-9存儲(chǔ)數(shù)據(jù)2
4.3完整代碼實(shí)現(xiàn)
'''清洗房天下新房數(shù)據(jù)'''
importpandasaspd
#讀取數(shù)據(jù)
df1=pd.read_excel('../數(shù)據(jù)/房天下新房數(shù)據(jù).xlsx',index_col=0)
#清洗行政區(qū)\t\n
df1['行政區(qū)']=df1['行政區(qū)'].str.replace('\t','').str.replace('\n','')
#處理戶型字段
df2=df1.dropna(subset=['戶型'])
#索引:戶型list
hxdict=dict(df2['戶型'].str.split('/'))
22
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
fori,vlistinhxdict.items():
forvinvlist:
df1.loc[i,v]='有'
col_list=df1.columns.tolist()[5:]
forcolincol_list:
df1.loc[df1[col].isna(),col]='無(wú)'
#處理面積字段
df3=df1.dropna(subset=['面積'])
#索引:面積list
mjlist=dict(df3['面積'].str.split('~'))
fori,vlistinmjlist.items():
#只有一個(gè)數(shù)據(jù),最大最小面積一樣
iflen(vlist)==1:
df1.loc[i,'最小面積(㎡)']=vlist[0]
df1.loc[i,'最大面積(㎡)']=vlist[0]
else:
df1.loc[i,'最小面積(㎡)']=vlist[0]
df1.loc[i,'最大面積(㎡)']=vlist[1]
#瀏陽(yáng)市->瀏陽(yáng)
df1.loc[df1['行政區(qū)']=='瀏陽(yáng)市','行政區(qū)']='瀏陽(yáng)'
#玉潭街道->寧鄉(xiāng)
df1.loc[df1['行政區(qū)']=='玉潭街道','行政區(qū)']='寧鄉(xiāng)'
#白馬橋街道->寧鄉(xiāng)
df1.loc[df1['行政區(qū)']=='白馬橋街道','行政區(qū)']='寧鄉(xiāng)'
#重排columns順序
df4=df1.loc[:,['名稱','一居','二居','三居','四居','五居','五居以上','最小面積(㎡)','最大
面積(㎡)','行政區(qū)','價(jià)格(元/㎡)']]
#存入清洗后的數(shù)據(jù)
df4.to_excel('../數(shù)據(jù)/房天下新房數(shù)據(jù)(清洗后).xlsx')
23
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
5數(shù)據(jù)可視化與分析
5.1前期準(zhǔn)備
本項(xiàng)目前期準(zhǔn)備需要導(dǎo)包導(dǎo)入數(shù)據(jù)以及讓圖形中中文以及負(fù)號(hào)正確顯示。
因?yàn)槭莈xcel的數(shù)據(jù)因此可以使用pandas中read_excel函數(shù)直接導(dǎo)入。。
圖5-1前期準(zhǔn)備(新房)
24
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
5.2數(shù)據(jù)展示
5.2.1行政區(qū)平均新房單價(jià)分析
圖5-2新房數(shù)據(jù)展示頁(yè)面1
從圖中可以看出,芙蓉區(qū)的平均新房單價(jià)是最高的,而瀏陽(yáng)的平均
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電力工程勞務(wù)分包合同樣本
- 重型廢鋼采購(gòu)協(xié)議
- 代理記賬與辦公自動(dòng)化合同
- 每月服務(wù)費(fèi)用合同
- 個(gè)人職業(yè)操守保證宣言
- 工程承包合同樣本
- 網(wǎng)絡(luò)運(yùn)維服務(wù)協(xié)議
- 房屋交易合同說(shuō)明
- 招標(biāo)代理機(jī)構(gòu)比選評(píng)價(jià)
- 嚴(yán)守保密紀(jì)律忠誠(chéng)使命擔(dān)當(dāng)
- 2024年上海海洋大學(xué)馬克思主義基本原理概論(期末考試題+答案)
- 社會(huì)實(shí)踐-形考任務(wù)四-國(guó)開(kāi)(CQ)-參考資料
- 《第02課 抗美援朝》教學(xué)設(shè)計(jì)(附學(xué)案)
- 2024年貴州貴安發(fā)展集團(tuán)有限公司招聘筆試參考題庫(kù)附帶答案詳解
- 【110kV變電站電氣一次部分設(shè)計(jì)探究5800字(論文)】
- 線上房展會(huì)活動(dòng)方案
- PCB制造成本參數(shù)
- 操作系統(tǒng)智慧樹(shù)知到期末考試答案2024年
- 《跨境供應(yīng)鏈管理》教學(xué)大綱(含課程思政)
- 高三英語(yǔ)二輪復(fù)習(xí)寫(xiě)作專項(xiàng)讀后續(xù)寫(xiě)人物情緒描寫(xiě)方法課件
- 殯儀館物業(yè)服務(wù)方案
評(píng)論
0/150
提交評(píng)論