C21城市網北京市二手房數據采集與分析_第1頁
C21城市網北京市二手房數據采集與分析_第2頁
C21城市網北京市二手房數據采集與分析_第3頁
C21城市網北京市二手房數據采集與分析_第4頁
C21城市網北京市二手房數據采集與分析_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

湖南商務職業(yè)技術學院畢業(yè)設計

目錄

1引言............................................................................................................................1

1.1項目背景......................................................................................................1

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

1.2.1Python介紹..........................................................................................2

1.2.2Pycharm介紹........................................................................................3

1.2.3Python第三方庫介紹..........................................................................3

2需求分析....................................................................................................................4

2.1可行性需求分析..........................................................................................4

2.2采集目標功能分析......................................................................................5

2.3關鍵技術分析..............................................................................................5

2.3.1網絡爬蟲技術......................................................................................5

2.3.2文件存取技術......................................................................................6

2.3.3可視化技術..........................................................................................7

3數據采集....................................................................................................................7

3.1采集頁面分析..............................................................................................7

3.2字段分析......................................................................................................7

3.3編程實現......................................................................................................8

4數據清洗與處理........................................................................................................9

4.1數據清洗......................................................................................................9

4.2數據儲存....................................................................................................10

4.3編程實現....................................................................................................11

5數據統計與分析......................................................................................................11

5.1數據準備....................................................................................................11

5.2數據展示....................................................................................................12

5.2.1根據房屋戶型進行分析....................................................................12

5.2.2根據區(qū)域與價格的關系進行分析....................................................13

5.2.3根據裝修類型與價格的關系進行分析............................................14

I

湖南商務職業(yè)技術學院畢業(yè)設計

6小結..........................................................................................................................15

參考資料.........................................................................................................................16

II

湖南商務職業(yè)技術學院畢業(yè)設計

C21城市網北京市二手房數據采集與分析

1引言

隨著python的不斷發(fā)展,html在計算機編程中處于領先地位。與早期流

行的高級語言(Java、C語言)相比,python有更多實用的模塊和庫。雖然它

犧牲了潛在的本質,但對于開發(fā)小型項目來說更方便。此外,HTM|也被廣泛應

用于網站前端。標記語言與CSS相結合的特點豐富了網頁的內容和形式,從某

種意義上促進了更加人性化的電子商務系統的發(fā)展。本文中的網絡爬蟲是基于

Python語言正式編寫的。它通過HTML捕獲和處理將數據可視化,從而監(jiān)控從

離線到在線的非法野生動物交易。隨著電子商務的發(fā)展,它變得越來越簡單,

也越來越難以跟蹤。

本文首先介紹了計算器語言的發(fā)展,特別是Python和HTML的優(yōu)點、基本

概念和性能。最后,重點介紹了能夠檢測網絡上非法野生動物交易的爬蟲的設

計和實現。該程序主要包括三個模塊:URL解析、抓取和本地輸出。開發(fā)環(huán)境

和工具分別是Python和pychram,它們主要調用Python中的請求和lxml模塊。

最終的程序可以為指定的網站和指定的關鍵字捕獲指定的內容,并將內容

保存在本地,以便于跟蹤和測試。

1.1項目背景

網絡爬蟲技術是使用網頁的鏈接地址來爬取我們需要的網頁內容,并且是

直接返回我們所需要的數據,網絡爬蟲技術是一個可以自動爬取到網頁上的各

種數據類型的程序,而且是不需要我們手動去瀏覽器操作獲取數據。爬蟲可以

幫助互聯網上的搜索引擎來爬取數據,通用的搜索引擎有谷歌、百度等瀏覽器

這也是我們日常上網瀏覽經常使用的搜索引擎,同時爬蟲也是搜索引擎重要的

組成部分。但是在抓取網頁時還是有一定的限制,抓取網頁時也沒有一定的針

對性,導致查詢到的數據結果不夠深入和完整,同時也沒辦法在特殊領域對抓

取到的數據結果進行下一步的分析。而且通用搜索引擎通經常會給我們返回一

些對我們沒有用處的垃圾信息,從而導致信息過量。

這些年來隨著互聯網、大數據、云計算等技術的快速發(fā)展,我們的智能城

市建設速度也是越來越快,現在更加多的物理對象使用數據來展示,現在使用

1

湖南商務職業(yè)技術學院畢業(yè)設計

數據來證實一些問題已經成為了一種可靠并且很有說服力的一種方式。現在有

很多地區(qū)已經進入到智能城市建設進程,大量的人口和不斷減少的房屋土地使

得房屋價格大幅上升。如何尋找合適自己居住的地方,已經成為了一個普遍存

在的民生問題了。

互聯網為使用者提供了不同的房屋數據,通過對數據的清洗、統計和可視

化的分析,用戶可以從數據中發(fā)現房屋的分布、價格等信息,從而為用戶提供

更好的選擇。

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

1.2.1Python介紹

GuidovanRossum創(chuàng)造了python編程語言。為了在阿姆斯特丹打發(fā)時間,

他在1989年開發(fā)一個全新的腳本解釋器,作為ABC語言的繼承。因為他是BBC

電視劇《巨蟒的飛翔馬戲團》的粉絲,所以python被選為該節(jié)目的名稱。同時

他還設計了一種用于教學的語言叫做ABC語言,他自己覺得ABC語言是一個很

完美和強大的語言,是專門為非專業(yè)程序員設計的一種教學語言,但是因為它

沒有打開,所以ABC語言并沒有取得成功。他在設計python語言中他把C語言

和其他的一些語言完美的結合起來,并且取得了很好的結果,讓python避免了

ABC語言的錯誤。于是,Python在Guido的手上誕生了。實際上,它的首次實

現是在Mac上。Python可以說是源于ABC,它主要受到Modula-3(另外一種很

美觀,很有力量的語言)的影響?,F在,Guido依然是python的第一開發(fā)人員,

它將會引領python的整體走向。python社區(qū)常常把他叫做“慈悲的獨裁者”。

2000年十月十六日,Python20推出,加入了完全的垃圾收集和Unicode支持。

與此同時,發(fā)展進程的整體透明度和社會對發(fā)展進程的影響逐漸增大Python3.0

在08年的十二月三日正式推出。這個版本不能完全兼容之前的Python源。但

是,很多新功能隨后被移植到老版本2.6/2.7中。(1)易于學習:Python編

程語言的關鍵字是比較少的,它的結構也相對簡單很好定義語法,所以學習其

他也更加容易。

(2)python的代碼定義比較明了,所以更容易的去閱讀。

(3)易于維護:Python編程語言使用的人數較多的一個因素在于它的源

代碼維護起來是比較簡單的。

(3)廣泛的標準庫:Python最大的特點之一是有很豐富的庫,是可以跨

平臺的,而且是非常兼容于UNIX、windows和Macintosh。

2

湖南商務職業(yè)技術學院畢業(yè)設計

(4)互動模式:python是支持互動模式的,我們可以輸入執(zhí)行代碼從終

端獲取結果的語言,交互測試和調試代碼片段。

(5)可移植性:由于它的一個開源性質,是可以被移植到很多平臺上,意

思就是可以正常工作。

(6)可擴展性:我們在運行一個快捷代碼或編寫其他一些中間不可見的算

法的時候,我們可以從C和C++里面完成一部分程序,然后再使用python去調

用它。

(7)Python可以為所有商業(yè)數據提供數據庫接口,是支撐數據庫連接的。

(8)GUI編程:Python支持圖形用戶界面,能夠建立圖形用戶界面,并將

它移植到很多的系統中。

(9)可嵌入:你可以在C或C++中安裝Python,使用戶可以“編寫腳本”

1.2.2Pycharm介紹

Pycharm是由JetBrains開發(fā)的一個pythonide,JetBrains還創(chuàng)建了

VS2010的重構插件resharper。它也支持谷歌應用程序引肇,而pycharm則支

持ironpython。這些功能都得到了高級的程式碼分析程式的支援,使得pycharm

對于Python的專業(yè)開發(fā)者和新手來說是非常有用的。

特點:首先,pycharm具有通用IDE的功能,如調試、語法高亮顯示、

項目管理、代碼跳轉、智能提示、自動完成、單元測試和版本控制此外,pycharm

還為Django開發(fā)提供了一些很好的功能,并支持GoogleAppEngine。更酷的

是pycharm支持ironpython。

主要功能:編碼輔助、項目代碼導航、代碼分析、python重構、Django

支持、GoogleApp引擎支持、集成版本控制、圖形頁面調試器、集成單元測試、

可定制和可擴展。

1.2.3Python第三方庫介紹

Requests:Requests庫是python編程語言中比較常用的一個庫,我們在

編寫爬蟲或者測試服務器響應數據的時候都會使用到requests這個庫。

Requests庫主要用于發(fā)送HTTP請求,是python編程語言的第三方庫是我們比

較常用的一個庫。

Lxml:Lxml是XML和HTML的解析器。它的主要功能是解析和提取XML和HTML

格式的數據;Lxml和regular一樣,也是用C語言實現的。這是一款高性能的

3

湖南商務職業(yè)技術學院畢業(yè)設計

HTML和XML解析器,你也可以使用xpath語法來找到具體的項目和節(jié)點的信息。

Html是一種主要用來表示數據的超文本標簽語言,其焦點在于數據的呈現。

XML是一種以數據傳輸和存儲為目的的可伸縮標簽語言,其焦點在于數據的內

容。

Tine:Tine庫是一個處理時間的庫在Python中也是比較常用的一個時間

庫。

JSON:JSON的全名是JavaScript對象表示法,即JS對象標記語言。它用

于存儲和交換數據信息。它獨立于語言。JSON文件很容易理解。可以通過“名

稱:內容”定義相應的字段,使用非常方便。

Pandas:pandas庫,可以導入、清理、處理、計數和輸出數據。熊貓是基

于numpy圖書館的??梢哉f熊貓圖書館是為數據分析而生的。

Matplotlib:Matplotlib最早被開發(fā)用于可視化癲癇患者的EEG相關信號。

它被稱為Matplotlib,因為它在函數設計中引用了MATLAB。Matplotlib是最

常見的Python可視化工具,可以很容易的制作出許多二維圖表和一些基礎的三

維圖表。它可以定義X軸和Y軸,并根據數據集(dataframe、Series)繪制圖

形(線性圖、直方圖、密度圖、散點圖等),可以解決大多數需求。

2需求分析

2.1可行性需求分析

1.技術可行性

該項目使用pycharm開發(fā)工具和python編程語言。Pycharm具有調試、語

法高亮顯示、項目管理、代碼跳轉、智能提示、自動完成、單元測試和版本控

制等通用IDE功能。

另外,pycharm也為Django開發(fā)和谷歌應用引擎提供了很多不錯的特性,

更棒的是pycharm對ironpython的支持。Python是一種具有解釋性、面向對

象和動態(tài)數據類型的高級編程語言。本項目通過Python第三方庫進行數據采集

和數據可視化顯示。

2.項目可行性

面對不斷上漲的房價,人們承受著日益增加的購房壓力,人們往往會選擇

二手房,以減輕房屋的負擔,二手房價格除了受基本面積、總價、建筑面積等

因素的影響外,還受其它社會因素的影響。因此我們可以對二手房價格背后的

4

湖南商務職業(yè)技術學院畢業(yè)設計

一些影響因素進行一系列的研究。很多人在買房前都會去一些相關的網站上或

者軟件上去搜索了解房源信息。我們都知道網站上面的和軟件上面的它的數據

量是很龐大的,面對如此龐大并且復雜的數據,我們如何去減少查找的時間并

且快速找到有用的信息數據呢?這里我們家用到了Python網絡爬蟲技術。本項

目通過Python數據采集技術爬取C21北京市二手房網上的二手房數據,我爬取

的字段有簡介、區(qū)域、面積、戶型結構、裝修類型、總價、單價等,然后對采

集到的數據進行下一步數據清洗。最后用清洗后的數據進行可視化分析,根據

分析結果去探索對北京市二手房價格的影響因素有哪些?

2.2采集目標功能分析

本次項目的數據采集來自于C21二手房網(網址:

/ershoufang/),通過python爬取C21二手房網北京

二手房信息。爬取40頁二手房信息,數據清洗后一共800條數據,以此進可能

保證數據的可靠性

本次爬取C21二手房網,主要獲得了以下信息:簡介、區(qū)域、裝修類型、

單價、總價、面積、戶型。我們的主要目的是通過實際數據來分析北京市二手

房的房價問題:比如說房子的位置主要分布在哪個區(qū)域,可以給客戶自行的去

選擇。分析出每個區(qū)域的一個實情價格,再給客戶提供一個房屋面積和裝修類

型的一個信息,讓客戶可以更快更方便的找的自己所喜的房子。

2.3關鍵技術分析

2.3.1網絡爬蟲技術

網絡爬蟲技術也可以用來形容為數據收集。其主要系統結構和工作原理可

以納為:聚焦網絡爬蟲、通用網絡爬蟲、增量試用網絡爬蟲和深層網絡爬蟲。

1.聚焦網絡爬蟲:聚焦網絡爬蟲,也就是所謂的主題網絡爬蟲,是一種利

用有選擇的爬取與主題相關的網頁的網絡爬蟲。相比一般的網絡爬蟲,它需要

從網頁中找到與主題有關的內容,從而節(jié)省了大量的硬件和網絡資源。由于人

數比較少,所以保存的資料也比較多。該系統能夠很好的滿足不同群體對具體

領域的需要。

2.通用網絡爬蟲:通用網絡爬蟲也稱為全網爬蟲。一個物體的爬取范圍從

一些URL延伸到了整個頁面。主要針對門戶網站、大型搜索引擎和大型網絡服

5

湖南商務職業(yè)技術學院畢業(yè)設計

務商等進行數據采集。通用的網絡爬蟲可以分為以下幾個模塊:網頁爬蟲模塊、

分析模塊、鏈接過濾模塊、數據庫、URL列隊、URL等。

3.增量試用網絡爬蟲:增量網絡爬蟲是指對已下載的頁面進行遞增的升級,

僅對已產生的或修改的頁面進行爬取。這樣可以保證被爬取的數量盡量是新的。

4、深層網絡爬蟲:網頁根據其存在的模式可以定義為表層網頁以及深層網

頁兩種。表面頁面是一些老的搜索引擎可以搜索到的頁面。但是深度頁面是大

部分頁面和內容是無法通過靜態(tài)頁面來進行索引的網頁,它會躲在搜索表單的

后面,只有用戶在提交關鍵字之后才可以用。深層網絡爬蟲有表單填充的部分,

這一部分是核心部分,它包含了下面兩種類型:

首先是靠領域知識的表單填充部分其次就是網頁結構分析部分的表單填

充。

網絡爬蟲的基本工作流程如下:

(1)首先,需要選擇好想要爬取的URL;

(2)把這些URL放入要檢索的URL隊列

(3)在要爬取的URL中取出要URL,進行下一步的解析DNS,獲取主機的

IP地址,然后再下載該URL對應的網頁,把它保存在下載的網頁庫中。此外,

把這些URL放入獲取的URL隊列當中去。

(4)分析已經爬取的URL隊列中的URL,以及分析其他的URL,再把將該

URL放到要爬網的URL隊列中,以便執(zhí)行下一個循環(huán)。

2.3.2文件存取技術

圖2-1數據存儲

我們爬取到的數據都是存儲在文件中,能夠更好的讀取數據。在python中

常用的文件存儲方式有json文件、csv文件、MySQL數據庫等。這里我用的存

儲方式是json文件存儲數據。將數據作為json文件進行存儲是一種代碼處理,

其中最常見的兩種方式是dump函數和dumps函數,它們之間的區(qū)別是dump函

數是將Python對象轉化為json對象,然后將json對象通過fp文件流寫入到

文件中,dumps函數就是產生一個字符串。這里我用的是dumps函數。實現代

碼如圖:2-1數據存儲。

6

湖南商務職業(yè)技術學院畢業(yè)設計

2.3.3可視化技術

數據可視化技術是通過圖形化方式更加清晰明了的把數據展現出來。

也許有些人會覺得數控可視化是為了美觀,但事實并非如此,而是因為它可以

把數據以圖形圖表的形式更直觀和清晰的展現出來讓我們更好的去分析數據。

那我們又如果把數據進行可視化呢,那我們就要用到一些工具去實現我們常用

的工具有python、Excel、D3等工具,那么這里我們用的工具就是python了,

python給數據可視化提供了一些第三方庫有plotly、pyecharts、matplotlib

等,matplotlib庫是python可視化使用者最多的一個庫,它的功能很強大,

同時它也是比較復雜的。

3數據采集

3.1采集頁面分析

打開瀏覽器,進入到C21二手房網(網址:

/ershoufang/),進入網址后把地址切換到北京市,觀

察圖3-1,其中URL為:/ershoufang/pg;然后點擊頁

面下方的切換頁面按鈕,同時觀察URL,發(fā)現URL上有變化的。

圖3-1數據網址頁面

3.2字段分析

首先打開開發(fā)者工具,點擊左上角箭頭,然后點擊我們所需要的區(qū)域名,

7

湖南商務職業(yè)技術學院畢業(yè)設計

就可以找到區(qū)域名的存放位置了,如果直接右擊復制xpath值獲取數據的話可

能只能對少部分的值進行獲取,所以我們要用手寫的方式來獲取它的xpath數

據,通過定位可以發(fā)現每個區(qū)域名的位置都是在class類名為”area”下的第

一個a標簽的text內容,但這個class是在其他大divclass下的,所以我

們編寫的時候要在前面加上.//div。

例如:.//div[@class=“area”]/a[1]/text()

圖3-2字段分析頁面

然后繼續(xù)找到我們所需要的字段,進行字段分析,簡介、區(qū)域、總價、面

積、單價、裝修類型、戶型,最后對我們所需要的數據進行采集和分析。

3.3編程實現

首先導入requests庫,發(fā)起請求,獲取頭部信息。導入lxml庫使用xpath

對網頁進行解析,爬取到我們所需要的數據。代碼如圖:3-10

8

湖南商務職業(yè)技術學院畢業(yè)設計

圖3-3代碼實現

4數據清洗與處理

數據清理是指過濾和清除重復或冗余的數據,完全補充丟失的數據,修改

或刪除錯誤的數據,最后將其排序為我們可以使用的數據。顧名思義,數據清

理就是清除臟數據并獲取有用數據。

數據清洗的步驟:1、處理缺少值2、去除不需要的字段3、填充缺失值4、

重新取數5、關聯驗證

在我們的生活中,戲劇追逐、網上購物、網上支付、學習等領域將被應用

于數據清洗和處理。例如,如果你經常刷視頻,背景會根據你經常觀看的視頻

對數據進行分類,從而推薦你最喜歡的視頻類型。例如,現在普遍使用的在線

支付將在每筆交易的背景中提供詳細數據,然后對數據進行清理和分類,讓我

們知道每筆基金的下落。數據清理后,我們可以讓每個領域都像生活一樣方便。

4.1數據清洗

將獲取下來的數據進行清洗,刪除掉一些沒用的字符和空格,獲取到干凈

整潔的數據。

9

湖南商務職業(yè)技術學院畢業(yè)設計

圖4-1清洗后的數據

4.2數據儲存

一般保存數據的方式有如下幾種:

文件:txt、csv、excel、json等,保存的數據量小。

關系型數據庫:mysql、oracle等,保存的數據量大。

非關系型數據庫:Mongodb、Redis等鍵值對的形式存儲數據,保存的數據

量大。

二進制文件:保存爬取的圖片、視頻、音頻等格式數據。

這里我是使用了json文件儲存方式,來儲存清洗后的數據文件名為1.json

圖4-2數據存儲頁面

10

湖南商務職業(yè)技術學院畢業(yè)設計

圖4-3部分存儲數據

4.3編程實現

首先導入pandas庫,在讀取數據文件,然后進行數據進行清洗,刪除掉一些沒用的字

符和空格,獲取到干凈整潔的數據。

圖4-4數據清洗

5數據統計與分析

5.1數據準備

導入相關庫,使用pandas加載源數據,查看源數據是否完整。如圖:5-1

11

湖南商務職業(yè)技術學院畢業(yè)設計

圖5-1數據準備

5.2數據展示

5.2.1根據房屋戶型進行分析

圖5-2數據展示頁面

用餅圖將北京市所有區(qū)域二手房戶型統計出來,從圖5-2餅圖中可以看出

來2室和3室的房屋戶型占比是比較高的,而4室和5室的房屋戶型占比是比

較少的,由此可以看出2室和3室的房屋戶型是要比4室和5室的戶型要更加

實用需求量更高的戶型。代碼如下

12

湖南商務職業(yè)技術學院畢業(yè)設計

圖5-3代碼展示

5.2.2根據區(qū)域與價格的關系進行分析

圖5-4數據展示頁面

從圖5-4柱狀圖中可以看出北京市二手房其中房價最高的地區(qū)是西城區(qū)和

東城區(qū),均價為112479元/平和105588元/平,單價突破了10w的大關。而房

價最低的地區(qū)是密云區(qū)均價為23622元/平。代碼如圖:5-5

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論