基于Python的南京二手房数据爬取及分析
2021-06-08戴瑗郑传行
戴瑗 郑传行
摘 要: 文章使用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-),男,贵州遵义人,教授,硕士生导师,博士,研究方向为金融数据分析。