戴瑗 鄭傳行



摘? 要: 文章使用Python爬蟲并結合數據分析技術,對鏈家網上南京二手房的所有房源數據進行采集、清洗,再對清洗后的數據進行可視化分析,研究隱藏在這些海量數據背后的規律。由此可獲得南京二手房的基本屬性特征以及二手房源的分布情況,起到購房決策輔助作用。
關鍵詞: Python; 爬蟲; 數據挖掘; 可視化分析; 二手房
中圖分類號:TP399????????? 文獻標識碼:A???? 文章編號:1006-8228(2021)01-37-04
Crawling and analyzing Nanjing second hand house data with Python
Dai Yuan, Zheng Chuanxing
(School of information, Guizhou university of F&E, Guiyang, Guizhou 550025, China)
Abstract: This paper uses Python crawler and data analysis technology to collect and clean all the house source data of Nanjing second-hand house on lianjia.com, and then the cleaned data is analyzed and visualized to study the laws hidden behind it. By doing so, the basic attribute characteristics of second-hand house and the distribution of second-hand house in Nanjing can obtained, which plays an auxiliary role in the decision-making of house purchase.
Key words: Python; crawler; data mining; visual analysis; second-hand housing
0 引言
國內房地產快速發展,近幾年來,公民越來越關心房價問題,2016年的中央經濟工作會議明確提出“房子是用來住的、不是用來炒的”,展現了住房是民生之本[1]。面對攀升的房價,人們買房的壓力越來越大,為了緩解住房壓力,人們會選擇購買二手房。二手房的房價除了受到最基本的區域、總價、單價、建筑面積的影響, 更受到了其他社會因素的影響。所以我們有必要對二手房價格背后的影響因素進行研究[2]。
在買房之前,人們會在相關網站上搜索自己想要了解的住房信息,但是面對龐大且來源廣泛的網絡數據,如何縮短網頁下載時間,如何分析大量數據并找出有用信息,就需要用到網絡爬蟲技術。本文通過Python爬蟲程序爬取鏈家網上所有的二手房數據,爬取的字段包括所在區域、面積、朝向、樓層、戶型結構、裝修情況、總價、單價等,并對采集到的這些數據進行清洗[3]。最后對清洗過的數據進行可視化分析,探索南京二手房建筑面積、位置、戶型等對二手房房價的影響情況。
1 Python數據分析簡介
本文利用Requests和Beautifulsoup庫進行網絡爬蟲。Requests是一個基于urllib,并且是用Python語言編寫的HTTP庫。Requests比urllib更加方便,它可以向需要爬取的網頁發送requests請求,然后自動爬取HTML頁面并模擬瀏覽器請求提交,從而得到目標網頁資源。beautifulsoup庫作為Python的第三方庫,可以解析HTML或XML文件中的數據,提取網頁數據的Python庫[4],使其更加具結構化和格式化。
在進行數據分析時用到了Numpy、Matplotlib、Pandas這些第三方庫。把這些庫用在二手房信息爬取及分析中,不但能夠節約項目成本,還能提高信息資源的利用效率。Numpy底層使用C語言編寫,是Python的基礎計算系統,通過提供Python對多維數組對象的支持即ndarray,直接對元素級別和數據進行操作,運算效率遠高于純Python代碼。Matplotlib是一種可以生成高質量圖標的基于Python的數據可視化模塊[5],幫助用戶在各種硬拷貝格式和交互式環境下進行MATLAB風格的繪圖。Pandas作為數據分析包,經常在Python做數據分析時用到,能夠快速地給Python提供結構化的數據資源。
2 數據采集及數據清洗
2.1 數據采集
⑴ 鏈家網網站結構分析
鏈家網(http://www.lianjia.com/)成立于2009年,是鏈家房地產經紀有限公司為發展主要業務領域——新房、二手房、租房而創建的線上房產交易平臺。鏈家網上的二手房的主界面如圖1所示。圖1最上方的紅色方框展示的是目前南京市內各地區關于二手房房源的位置區域,而中間的紅色方框表示在售房源的總數量,圖1最下方的紅色方框其實是二手房房源信息的縮略圖。由于鏈家網自帶有百度地圖的定位功能,所以這個縮略圖涵蓋了二手房房源頁面的URL地址標簽,能夠直接得到小區的經緯度信息。在用戶與網站的交互過程中,鏈家網能對這個過程產生的比如搜索數據、點擊數據等大數據進行分析,掌握用戶的看房偏好,為其推薦感興趣的房源并且推薦公司好評優先、熟悉該小區的房屋經紀人對該用戶進行服務。
⑵ 需要采集的網站數據
需要采集的房源數據主要包括二手房源的基本信息(總價、單價、所在小區名稱以及所在區域);基本屬性(房屋戶型、建筑面積、套內面積、房屋朝向、裝修情況、配備電梯、所在樓層、戶型結構、建筑類型、建筑結構、梯戶比例);交易屬性(交易權屬、房屋用途、產權所屬、房本備件、掛牌時間、上次交易、房屋年限、抵押信息)。
⑶ 網站數據爬取流程
爬取鏈家網中南京市二手房的工作流程如圖2所示。
2.2 數據清洗
數據清洗就是對數據文件進行重新監測,識別錯誤并糾正的過程,對所爬取的數據進行規范化操作,比如刪除重復數據、處理無效值和缺失值等[6]。原始數據通常來源于各種業務系統,只是由于主題一致而集合在一起,故難免會有沖突的數據和錯誤的數據,這些我們并不需要的數據稱之為“臟數據”[7]。而消除這些“臟數據”,使過濾后的數據具有一致性的過程就是數據清洗。
本文清洗的原始數據部分是清洗數據項格式、對缺失值進行處理,對齊雜亂的數據項。清洗后的示例數據如圖3所示。
3 數據可視化分析
數據可視化技術就是把數據以圖形圖表的方式呈現出來,它的目的是幫助人們更加方便地分析總結出數據背后隱藏的規律,為決策提供好的依據。可視化技術越來越受大眾歡迎,由于它的直觀性,這項技術發展迅速并成功取得相應的成就。本文主要對二手房房源信息進行分析,例如房源面積、戶型、總價、單價、所在區域等。主要步驟有數據加載、數據轉換、數據可視化呈現、數據規律總結等。
3.1 數據加載
數據準備需要做很多工作,其中大部分來自于數據分析和數據建模,包括轉換、清理、加載等。經過數據清洗后,完整的數據依然還保存在CSV文件中,這時候要將這些數據按照一定的要求加載到內存里。為了加載處理清洗過濾后的數據,可以使用Pandas所提供的DataFrame對象,Pandas主動將表格型的數據轉換為DataFrame可以讀取的函數。數據加載的過程中需要注意關于數據項的行列索引處理,還有對缺失值的處理,以及數據類型的推斷和數據轉換的問題。
3.2 可視化分析
⑴ 詞云圖
為了尋找南京二手房房源數據背后的規律,用數據可視化的方法畫出詞云圖(圖4),通過圖4我們可以直觀地看出租客在關注房屋特征時,詞云圖中的高頻詞是:鋼混、結構、平米、普通住宅、商品房、非共有等。這表明購房者最關心的首先是房屋結構和面積,其次是房屋類型。
⑵ 南京各區域二手房房源數量前九
南京各區域的二手房房源數量前九折線圖如圖5所示,x軸表示南京二手房源所在區域名稱,y軸表示二手房房源數量,單位為套。從圖5折線圖可以明顯看出,江寧在售的二手房房源數量最多,這個地方的二手房數量高達5000多套。房源最少的是在六合區,房源數量只有一套。因為江寧區離南京市中心更近,而六合與市區之間則隔著一條長江,相比于六合,江寧區更是圍繞在各地鐵線兩邊,交通便利,所以江寧和六合這兩個區域的房源數量差距較大,其他地區的數量差別不是很大。
3 南京各區域二手房平均單價分析
圖6是南京市各區域二手房的平均單價柱狀圖,x軸是南京市各區域名稱,y軸是單價(元/平米)。建鄴區還有鼓樓區的平均單價最高,高達40000元/平米。可能是因為這兩個區的地理位置特別好,作為中心城區的建鄴區,經濟發展迅速,是中國東部地區的金融服務中心,房價一直持高,到現在已經是全南京房價最高的區域之一。而鼓樓區是江蘇省南京市的核心地段,也是國家重要的科技創新中心以及航運物流服務中心,鼓樓區地理環境優越,瀕臨長江并有高山環繞、湖水相依,坐擁許多商場,聚集了休閑、餐飲與購物于一體的商業氛圍,所以平均單價這幾年來也一直位居高位。根據圖6顯示,不難看出南京市各個區域的二手房平均單價都在20000元/平米以上(除去有誤差的六合區),還有看起來平均單價偏低的浦口區,也比前幾年翻了一倍,說明南京這幾年的整體房價漲勢迅猛。
4 南京二手房建筑面積分析
南京二手房建筑面積分布區間柱狀圖如圖7所示,x軸是房源數量,y軸是建筑面積。其中,建筑面積在50-100平米內的房源最多,超過一萬多套,100-150平米內的房源位居第二,而300-350平米的房源最少。說明在南京二手房市場中,中小戶型占據了主流。
5 南京二手房總價與建筑面積關系
南京二手房總價與面積關系散點圖如圖8所示,x軸表示建筑面積,y軸表示總價。我們從圖8中了解到總價與建筑面積呈正相關關系。房屋建筑面積越大,價格也就越高,符合基本常識。總價0-1400萬元與建筑面積0-300平米這個區域內,數據點分布密集。
6 南京二手房房屋戶型情況
對南京二手房最常出現的戶型進行計數并進行可視化分析如圖9所示,南京二手房最常出現的戶型為二室一廳。二室二廳和三室二廳的戶型也不少。
4 結束語
本文利用Python爬取鏈家網上南京二手房的相關信息,將采集到的二手房信息進行數據清洗過濾,最后通過可視化分析從中提煉出能幫助人們做出購房決策的信息[8]。這個方法不僅局限于南京二手房信息,也可以適用于不同城市的買房租房需求,購房租房人員可以據此掌控房屋市場動態,預測其趨勢,然后做出合理抉擇。
參考文獻(References):
[1] 王曉娟.重慶二手房價格影響因素研究[J].廊坊師范學院學報:自然科學版,2019.3.
[2] 劉航.基于Python的重慶二手房爬取及分析[J].電腦知識與技術,2019.15(36):6-7,17
[3] 朱俊.二手房數據分析系統的設計與實現[D].西南交通大學碩士學位論文,2017.
[4] 王碧瑤.基于Python的網絡爬蟲技術研究[J].數字技術與應用,2017.5:76-76
[5] 羅博煒.基于Python的數據可視化[J].信息記錄材料,2019.[6] 姚沖,閉鑫業.基于集成學習的武漢二手房估價模型研究[J].
商訊,2019.
[7] 王芳.基于Python的招聘網站信息爬取與數據分析[J].信息技術與網絡安全,2019.8.
[8] 趙綠草,饒佳冬.基于python的二手房數據爬取及分析[J].電腦知識與技術(學術版),2019.7:1-3
收稿日期:2020-09-07
基金項目:貴州省科技計劃項目(黔科合基礎[2019]1054號)
作者簡介:戴瑗(1997-),女,重慶榮昌人,碩士生,研究方向為信息資源管理、金融數據分析。
通訊作者:鄭傳行(1977-),男,貴州遵義人,教授,碩士生導師,博士,研究方向為金融數據分析。