58同城网站长沙市二手房数据采集与分析_第1页
58同城网站长沙市二手房数据采集与分析_第2页
58同城网站长沙市二手房数据采集与分析_第3页
58同城网站长沙市二手房数据采集与分析_第4页
58同城网站长沙市二手房数据采集与分析_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

湖南商务职业技术学院毕业设计

目录

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

1.1项目背景.............................................................................................................1

1.2开发环境与工具.................................................................................................2

1.2.1Python简介..............................................................................................2

1.2.2Anaconda简介..........................................................................................3

1.2.3Python第三方库简介..............................................................................3

1.2.4PyCharm简介............................................................................................4

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

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

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

2.3关键技术分析.....................................................................................................6

2.3.1网络爬虫技术...........................................................................................6

2.3.2文件存取技术...........................................................................................7

2.3.3可视化技术...............................................................................................7

3数据采集....................................................................................................................8

3.1采集页面分析.....................................................................................................8

3.2字段分析...........................................................................................................10

3.3编程实现...........................................................................................................10

4数据清洗与处理......................................................................................................14

4.1数据清洗...........................................................................................................14

4.2数据储存...........................................................................................................16

4.3编程实现...........................................................................................................17

5数据统计与分析......................................................................................................19

5.1数据准备...........................................................................................................19

5.2数据展示...........................................................................................................22

I

湖南商务职业技术学院毕业设计

5.2.1依据长沙各区二手房数量进行统计.....................................................22

5.2.2依据长沙二手房房屋户型进行统计.....................................................23

5.2.3据长沙各区二手房平均每平方米单价进行统计和分析.....................24

5.3本章小结...........................................................................................................25

6小结..........................................................................................................................25

参考资料.........................................................................................................................26

II

湖南商务职业技术学院毕业设计

58同城网站长沙市二手房数据采集与分析

1引言

现代社会的发展迅速,信息更迭的速度越来越快,科学技术也越来越发达,

手机、电脑等一系列电子产品经过一次次的升级,更加贴合人们的日常生活,

因为这些技术的存在,使得人们之间的交流更加密切,生活方式也变得更加便

捷,在这些过程中,产生了大量的数据。大数据,又称为海量数据,是指相关

的大量数据无法使用主流软件工具捕捉、管理、处理和可视化,整理成信息,

以帮助企业在合理的时间内做出更积极的决策。

Alibaba创始人马云曾在一次演讲中提到,未来的时代不再是IT时代,而

是DT时代。这是一项数据技术,表明大数据对阿里巴巴集团非常重要。

当前,智慧医疗、智慧城市、精准扶贫以及其他一些相关高新技术产业都

需要大数据的支持,衣食住行、卫生医疗等方面产生的海量数据等待开发的价

值愈来愈大,大数据技术在我国得到了广泛的应用,由此可见,大数据时代已

经轰轰烈烈地到来!

1.1项目背景

大数据在经济运行和一些社会生产、流通等方面起着十分重要的作用,被

大众视为“未来的新石油”和21世纪的“钻石矿”,可见其价值不菲。在2014

年,大数据首次被纳入国家政府工作报告;2015年国务院发布了促进大数据发

展的行动计划。也就是说,大数据已经正式成为国家的发展战略。此后,又推

出了一系列覆盖交通和旅游服务大数据等多层次下游应用市场的大数据政策,

加快了大数据战略的实施。同时,随着大数据政策的出台,各地政府纷纷成立

大数据的相关管理机构,积极响应国家政策,发展大数据产业,并在全国22个

省和200多个城市设立了大数据管理部门。

随着越来越多城市的房地产市场进入存量时代,二手房市场的地位愈发重

要,其走势对于房地产整体市场的影响也逐渐加强。在很多二手房市场规模占

比较高的一二线城市中,二手房市场与新房市场通过“卖旧买新”的链条形成

较强的联动:二手房卖家通过置换现有住房获得资金,转而在新房市场实现住

房改善。

在买房之前,人们会在相关网站上搜索自己想要了解的住房信息,但是面

对庞大网络数据,如何缩短网页查找时间,分析大量数据并找出有用信息,就

1

湖南商务职业技术学院毕业设计

需要用到网络爬虫技术。

我的毕业设计就是针对人们购买二手房的需要,然后爬取58同城二手房网

站数据,爬取的字段包括所在区域、面积、朝向、楼层、户型结构、建造时间、

总价、单价等,并对采集到的数据进行清洗,最后对清洗后的数据使用pycharm

进行可视化。繁杂的数据经过清洗分析加可视化后,一目了然地将结果呈现在眼

前,便于探索长沙二手房市场的情况。

1.2开发环境与工具

1.2.1Python简介

20世纪80年代末,荷兰的龟叔(GuidoRossum)创造了Python。

Python刚创建的时候并没有引起大多数人们的关注,直到在21世纪初

Google在大量的项目业务上大规模的开始应用Python,Python也因此走进大众

的视野,从而促使Python的发展。

Python作为一种面向对象的解释型计算机程序设计语言,已经成为当今计

算机技术发展的重要驱动力。它的使用范围广泛,能够在Linux、macOS和

Windows等多个操作系统中构建环境,而且,即使在这些操作系统之间进行调整,

也能够轻松实现,让使用者获得极大的方便。

此外,python的优势在于其应用范围广阔,包括人工智能、科学计算、系

统运维、游戏开发等等。要实现其功能,python必须拥有大量的相对完整的标

准库、第三方库。

云计算是一种全新的网络技术,能够让每一个使用互联网的人都体验到网

络带来的感受,使得互联网在数以及万人使用的时候也不会崩溃。其中最主要

的框架Openstack就是由Python开发而来,并且Openstack许多接口都支持

Python的调用,许多基础服务也是用python语言编写的,对于平台实现自动化

极其友好。不仅在云计算中运用到python,在后来崛起的人工智能技术中,

python也作为一门关键语言出现,用于机器和算法的开发当中。最关键的是,

python中的关键字较少,比C++、JAVA学起来更加容易,学成时间也更短,非

常适合初学者,代码的定义也更加清晰,可读性强,因此它很快地走进了大众

的视野中。

最后,python的应用范围广泛,从云计算到应用程序,不会限制用户在单一

的领域之中。当下的Python语言甚至可以和老牌的C语言、JAVA语言相提并论,

它也逐渐走进非IT行业工作者的视野内。现在,不少人们用它开发简单的小脚

2

湖南商务职业技术学院毕业设计

本来自动处理文件,或者开发一些小网站来打发无聊。这也突出Python的特点,

它易于学习,有丰富的第三方库,免费开源,夸平台性强等等。

1.2.2Anaconda简介

Anaconda,中文大蟒蛇,是一个开源的工具。Anaconda是专注于数据分析

的Python发行版本,包含了conda、Python等190多个科学包及其依赖项。

Anaconda支持Linux、Mac、Windows系统,还自带python、Jupyter

Notebook、Spyder,并且拥有包管理和环境管理功能,能够共存和切换多个

python版本,轻松解决各种第三方包安装问题。

Conda常被认为是一个工具,或者是一个可执行命令,它的主要功能是包和

环境管理。而Anaconda就是由conda发展而来的,在进行数据分析时,我们将

使用到许多的第三方包。还有很多项目使用的包的版本不一样,例如两个不一样的

pandas版本,我们这个时候就不可能同时去安装两个Numpy版本了,我们应该做的是,给

不同版本的Numpy搭建不同的环境,在项目相对应的环境中进行工作,这个时候conda就

可以很好的帮助我们去实现。Anconda预装了conda、科学计算工具,还有许多不同的包,

被视为打包的集合。另外,还预装了某个版本的python,因此又被称为python的发行版。

1.2.3Python第三方库简介

requests:最友好的网络爬虫功能库,它的使用方法比urllib简介更多,是

一个用python实现的简单易用的HTTP库。Python第三方库在使用前要先进行

安装。

Re:正则表达式解析和处理功能库,里面包含了多种字符串匹配的方法,用

于解析爬取的网页。

Print:他的英文全称为Dataprettyprinter他采用分行打印的方式输出

数据结果。让一些冗长复杂结构的数据输出更加漂亮好看,让开发人员一目了然。

Xlwt:xlwt属于python中的内置模块,它用于将数据写入excel。并且xls

文件是表格和数据库中常见的文件操作格式。

NumPy:numpy库是是科学计算的一种基础工具包,用来处理数组的python

库,是python数据解析的基础。包括统计学、矩阵数学、金融操作等Python

数据的计算工作库都依赖于它,不仅具有矩阵运算、线性代数、广播函数等功

能,也是N维数组最基础的库。NumPy库的数据结构比Python自带的更加高效。

Etree:etree是一个具有名为html的属性的对象,它将此属性的引用分配

给变量树。调用html()函数可以解析html文档对象的字符串表现形式,并返回

3

湖南商务职业技术学院毕业设计

字符串传递的Element对象,可以轻松地使用remove()、getparent()、xpath()

和其他方法。

pandas:数据分析并保存为csv文件,python数据分析高层次应用库,还可

以进行数据清洗。

matplotlib:绘图库,主要用于二维绘图包括折线图、条形图、扇形图、散

点图、直方图等等。

1.2.4PyCharm简介

VS2010的重构插件Resharper是由JetBrains打造的,PyCharm也是出自

JetBrains之手的一款PythonIDE。

首先,PyCharm支持智能提示、项目管理、语法高亮、版本控制和丰富的导

航等功能,具有通用IDE的功能。另外,PyCharm还支持GoogleAppEngine,

为Django的开发提供了一些很好的功能,更让人惊喜的是,PyCharm支持

IronPython,这是一种集成开发环境,它提供了一组工具,可以帮助用户在使

用python语言进行开发时提高效率,例如自动完成、代码跳转、项目管理、单

元测试等等。除了python,pycharm还提供了一些高级功能,支持各种python

web开发,提供了丰富的框架、CSS/HTML等。高级代码分析程序支持这些功能,

使得PyCharm成为Python初学者和专业开发人员的强大工具。

Pycharm对于内置软件包和外部软件包都可以完成更加流畅的代码实现,用

户可以通过其内置功能使得代码更加优化,例如智能检测、错误高亮和一键式

快速补全代码。Pycharm是可以跨平台使用的,无论是macos环境还是windows

环境,是当下python语言最好用的编译器。

2需求分析

2.1可行性需求分析

1、技术可行性

Python是面向对象语言中的一门通俗易懂的计算机编程语言,非常适合初

学者入门学习,相比较其他的主流编程语言比如:Java、C,可读性更强,上手

相对来说容易。本项目中使用Python编写程序来实现数据的获取,数据清洗预

处理和数据可视化。在数据获取的过程中遇到了一些小问题,我发现普通的爬

取程序并不能获取到网页数据,从这知道该网页设置了反爬,随后通过抓包分

析发现58同城二手房信息页面的数据是动态传输的,所以我通过网页检查页面

4

湖南商务职业技术学院毕业设计

获取了头部信息,并将其添加到代码中,输出状态码为200,成功得到网页数据

的返回值。随后将爬取出来的数据调整格式,以xls格式储存起来,在后续的数

据可视化中再进行调用。

以上为此次项目的技术可行性,我也将在后续的工作中将所有的步骤实现

到位,保证数据的准确性和安全性。

2、项目可行性

衣、食、住、行一直是我们人民关注的重点内容,也是我们衡量生活幸福

的指标,有关该领域的话题一经发布,往往能冲上热搜首榜。近年来,随着我

国二手房市场的逐步开放,越来越多的二手房开始进入市场,二手房交易规模

不断扩大,市场规模也在不断增长,成为一个不可让人忽视的存在。从大型中

介公司的“跑马圈地”,到众多的小型中介公司成立;从价格上涨到交易量的

持续增长,二手房市场开始奔跑起来,更为重要的是,二手房已经成为越来越

多人购房的考量。对于媒体来说,人民的需求就是责任,对企业来说,人民的

需求就是市场。二手房市场是最接近人口的住房市场,二手房地产市场的健康

发展,能够拉动整个房地产市场的启动,呈现出巨大的连锁反应。

本次项目就是通过采集58同城二手房网站长沙地区的数据,来分析长沙地

区的二手房房价信息。我将从户型、面积、单价、所属区域等方面对其进行深

度剖析,分析出有价值的信息,经过可视化得出最终结论,为出售二手房以及

二手房购买者提供参考,让人们了解现在二手房市场的情况。

2.2采集目标功能分析

该项目的数据集的来源是58同城二手房网站,是通过python爬取长沙二

手房的部分信息。本次爬取了25页长沙二手房的信息,数据清洗之后共2089

条记录,爬取完成后与网页进行选择性地对比,尽可能地保证数据的准确性,确

定获取到的数据无误并且是58同城二手房网站长沙地区实时存在的房源信息。

明确我们要分析的方向,确定我们要爬取的字段有:户型、面积、区域、

地址、价格、单价、建造时间、朝向、位置等。在对爬取到的原始数据进行清

洗后我们会对其数据进行多个层面的分析。例如,从二手房不同朝向的数量对其

进行分析,看看大部分二手房房屋的朝向是什么。又或者想要查看长沙所有地区

二手房的平均单价信息,得到二手房单价最高的区域,那么我们就可以将所有

二手房按照区域进行分类,然后计算平均单价,就可以进行各个区域二手房单

价的比较,了解各个区域二手房的平均单价。

5

湖南商务职业技术学院毕业设计

2.3关键技术分析

2.3.1网络爬虫技术

在互联网飞速发展的今天,万维网已经成了海量的信息流,因此,如何对

海量的信息流进行高效的抽取和使用已经是一个很大的难题。搜索引擎,比如

AltaVista,Yahoo!像谷歌这样,帮助人们获取万维网的信息,并成为他们

的门户和向导。然而,这种通用搜索引擎也有其自身的缺陷:不同领域、不同

背景的使用者的搜索目标和要求不同,而搜索引擎的查询结果中含有很多不受

欢迎的页面;一般的搜索引擎以最大的覆盖面为目的,而有限的搜索引擎和无

限制的网络数据资源将会加剧冲突。

网络爬虫是一种从万维网中自动获取网页的软件,是搜索引擎中的一个重

要组成部分。在网络爬虫的系统框架中,主过程由控制器,解析器,资源库三

部分组成。在原始网页上,一般的爬行器会先从一个或几个原始网页的URL中

获取URL,然后在浏览时,会从现有的网页中不断地提取新的URL并将其加入

到排队中;通过对每个URL所指向的网页进行分析,直至符合特定的系统终止

要求,从而实现对网页的浏览。根据系统结构和实现技术,网络爬虫分为以下

这些类型:通用网络爬虫、聚焦网络爬虫、增量式网络爬虫、深层网络爬虫。

通用网络爬虫:又称为全网爬虫,一般爬行范围和数量都十分巨大,因此

要求其速度快,对存储空间的需求也较大。只是刷新一次页面所需要的时间比

较长,所以通常会采用并行工作方式,适合对于一些主题内容的爬取。

聚焦网络爬虫:又称主题网络爬虫,它的特点是有选择地进行网页的爬取,

不需要的不爬取其内容,这样一来节省了许多资源。主要由初始URL集合、URL

队列、页面爬行模块、页面分析模块等构成。

增量式网络爬虫:是一种在已经下载的网页上发现新内容或者更新后的内

容并进行抓取的方式。增量式爬虫仅爬取发生变化的页面,避免了再次下载没

有发生改变的页面,大大减少了数据的下载量,同时可以及时更新已爬取的网

页,节省时间和空间,但是也增加了爬行算法的复杂性和实现难度。常用的方

法有3种:统一更新法、个体更新法、基于分类的更新法。

深层网络爬虫:拥有六大基本功能模块:爬行控制器、解析器、表单分析

器、表单处理器、响应分析器以及LVS控制器,它们搭配两个爬虫内部的数据

结构(URL列表和LVS表)共同构成爬虫的完整体系。网页可以按存在形式分为

表面页面和深层页面,表面页面指的是可以通过超链接访问的静态页面,而深

6

湖南商务职业技术学院毕业设计

层页面则是大多数内容无法通过静态链接获取的,需要更进一步操作。

目前,爬取的数据不能用于个人使用或者科学研究之外的用途,对于转载,

或者是商业,很容易会触犯到法律。因此,我们在使用网络爬虫技术时,要严

格遵守robots.txt协议。

2.3.2文件存取技术

不同的数据可以以不同的形式进行保存,最简单的就是以文本文件的形式,

比如CSV、TXT、JSON等,也可以存放到数据库里,比如关系型数据库Mysql和

Oracle。Hbase和MongoDB都属于非关系型数据库,它们可以实现非关系型的数

据管理模式,为用户提供更高效的数据存储服务。除此之外,Excel也是当下流

行的数据存储形式。根据爬取数据的特点,可以选择不同的数据存储方式,例

如txt文件适合用于简单的文本分析,而json和csv文件则更适合用于大型的

数据结构可视化处理。各种数据存储方式各有各自的优势,因此,要根据爬取

数据的特点,合理选择最适合的数据存储方式。本文中使用的存储是调用了xlwt

库进行excel的数据写入。

Python内置xlwt模块如图2-1显示(仅为示例,与本实例无关):

图2-1python内置xlwt模块

2.3.3可视化技术

大数据的出现正在全球范围内引起了商业变革和技术的显著变化。在技术

领域,我们过去更依赖模型方法,但现在我们可以借用巨大的数据,使用统计

方法,使得一些高科技技术在大数据时代取得进展。

大数据会采取多种形式和类型,这是因为它具有多层结构的性质。与以往

的数据业务相比,大数据具有不规则和模糊的特点,因此,我们很难设置不可

能使用传统的软件进行分析。我们在平常获取到的数据是一串串冗长的字符串,

上面写的一条条信息或许我们能够看懂读懂,但是当它成千上万的时候我们短

7

湖南商务职业技术学院毕业设计

时间内很难看出端倪和破绽,找不到它们的共通点,此时,我们需要进行深入的

了解和分析。但是面对数据字符,依旧让人头疼,而数据可视化技术可以将庞

大的数据通过统计学图形的方式展示在眼前,让我们对其结果一目了然。

本项目中仅仅只是将获取到的数据用简单的可视化手段实现数据可视化,

具体的就是使用python第三方库matpoltlab去进行可视化,matplotlab中包

含了许多库,分别对应饼图、条形图、直方图、折线图等图形,可以很好的将数

据高效率的表现出来,可视化图形呈现出来后对于结果一目了然,然后得出结论。

3数据采集

3.1采集页面分析

我们首先通过谷歌浏览器搜索58同城二手房的官方网页,然后找到长沙相

关的二手房,其中URL为:

/ershoufang/p1/?PGTID=0d30000c-0019-e7a6-d0ed-0f093

37028c8&ClickID=1。观察图3-1。

图3-158同城长沙二手房网址页面

8

湖南商务职业技术学院毕业设计

然后点击页面下方的下一页按钮,同时观察URL,发现URL发生了变化,变成

了(如图3-2):

/ershoufang/p2/?PGTID=0d30000c-0019-e7a6-d0ed-0f093

37028c8&ClickID=1

图3-2url变化界面

按F12调出开发者工具,刷新页面,点击开发者工具上面的Headers字段,

分析这是哪种请求,发现这个是一个GET请求,如图3-3。

图3-3开发者工具

9

湖南商务职业技术学院毕业设计

3.2字段分析

首先,我们找到需要爬取的字段:标题、户型、面积、区域、地址、价格、

单价、朝向等字段。通过开发者工具将需要爬取的字段定位到对应的源码。这

时,我们发现每一所二手房的信息都放在一个div标签中,通过对比div标签

的内容,找到了它们的共同点。原来,每个div标签中都有class="property"

这些文字,这样,我们可以通过爬取页面中这样的div标签,从而爬取到整个

网页中的二手房信息,再通过遍历,爬取具体的二手房信息,例如户型、面积

等等。

图3-4分析字段页面

3.3编程实现

导入所需库

图3-5导入所需库页面

设置请求头,伪装成浏览器访问服务器。

10

湖南商务职业技术学院毕业设计

图3-6请求头内容页面

代码实现如下:

#爬取58二手房信息

importrequests

importxlwt

fromlxmlimportetree

headers={

'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)

AppleWebKit/537.36(KHTML,likeGecko)Chrome/Safari/537.36',

}

wb=xlwt.Workbook(encoding='utf-8')

ws=wb.add_sheet('sheet1')

defwriteInto(information):

globalrow

forinforinrange(len(information)):

ws.write(row,infor,information[infor])

wb.save('house_information.xls')

row+=1

eheaders=['标题','户型','面积(㎡)','区域','地址','价格(万元)',

'单价(元/㎡)','朝向','建造时间(年)','总高(层)','位置(层)']

forcol,eheaderinenumerate(eheaders):

ws.write(0,col,eheader)

row=1

foriinrange(1,25):

#构建etree

url='/ershoufang/pn'+str(i)

response=requests.get(url=url,headers=headers)

tree=etree.HTML(response.text)

print("开始爬取第%s页数……"%i)

#解析

divs=tree.xpath('//div[@class="property"]')

fordivinrange(len(divs)):

11

湖南商务职业技术学院毕业设计

#print('第%s个'%str(div+1))

#titles标题

titles=tree.xpath(

'//div[@class="property"][%s]//div[@class="property-content-title"]/

h3/text()'%str(div+1))[

0]

#types户型

types=''.join(tree.xpath(

'//div[@class="property"][%s]//div[@class="property-content-detail"]

/section/div[1]/p[1]/span/text()'%str(

div+1)))

#sizes面积(㎡)

sizes=tree.xpath(

'//div[@class="property"][%s]//div[@class="property-content-detail"]

/section/div[1]/p[2]/text()'%str(

div+1))[0].replace('\n','').replace('','')[:-1]

#area区域

area=tree.xpath(

'//div[@class="property"][%s]//div[@class="property-content-detail"]

/section/div[2]/p[2]/span[1]/text()'%str(

div+1))[0]

#address地址

address1=tree.xpath(

'//div[@class="property"][%s]//div[@class="property-content-detail"]

/section/div[2]/p[2]/span[2]/text()'%str(

div+1))[0]

address2=tree.xpath(

'//div[@class="property"][%s]//div[@class="property-content-detail"]

/section/div[2]/p[2]/span[3]/text()'%str(

div+1))[0]

address='-'.join([address1,address2])

#price价格(元)

price=''.join(tree.xpath(

'//div[@class="property"][%s]//div[@class="property-price"]/p[1]/spa

n/text()'%str(

12

湖南商务职业技术学院毕业设计

div+1)))[:-1]

#units单价(元/㎡)

units=tree.xpath(

'//div[@class="property"][%s]//div[@class="property-price"]/p[2]/tex

t()'%str(

div+1))[0][:-3]

#directions朝向

directions=tree.xpath(

'//div[@class="property"][%s]//div[@class="property-content-detail"]

/section/div[1]/p[3]/text()'%str(

div+1))[0]

#time建造时间(年)

try:

time=tree.xpath(

'//div[@class="property"][%s]//div[@class="property-content-detail"]

/section/div[1]/p[5]/text()'%str(

div+1))[0].replace('\n','').replace('','')[:4]

except:

time=''

#nums总高(层)

#num位置(层)

try:

floor=tree.xpath(

'//div[@class="property"][%s]//div[@class="property-content-detail"]

/section/div[1]/p[4]/text()'%str(

div+1))[0].replace('\n','').replace('','')

nums=floor[-4:-2]

num=floor[:1]

except:

nums=''

num=''

#写入数据

#'titles标题','types户型','sizes面积(㎡)','area区域',

'address地址','price价格(元)','units单价(元/㎡)','directions朝向

','time建造时间(年)','nums总高(层)','num位置(层)'

#print('标题:',titles,'户型:',types,'面积(㎡):',sizes,'

区域:',area,'地址:',address1,address2,'价格(元):',price,

#'单价(元/㎡):',units,'朝向:',directions,'建造时间

13

湖南商务职业技术学院毕业设计

(年):',time,'总高(层):',nums,'位置(层):',num)

details=[titles,types,sizes,area,address,price,units,

directions,time,nums,num]

#print(details)

writeInto(details)

print("爬取完成!")

4数据清洗与处理

获取到庞大的数据之后我们需要对数据进行预处理,也就是所谓的清洗和

检查,采集大数据主要是为了体现其潜在的价值,经过清洗、分析、可视化后的

数据才能将价值呈现出来。因为在海量数据里总存在着一些不完整、不规范、

不利于分析得数据,因此数据清洗就是将这些数据经过清洗,从而提高数据的

质量。

本次项目中我们需要将爬下来的数据和网页原数据进行比对,并且检查是

否出现空值、错值,还有数据的位置是否正确。根据不同的需求我们要对数据进

行不同的处理。

4.1数据清洗

通过将爬取的数据与网页的原数据对比发现了以下需要进行清洗的地方:

1.在爬取面积字段时发现爬取到的数据中前后都有换行符和空格,影响了数

据的正常使用,如图4-1。

图4-1字符分析页面

此处采用字符分割的方式,先将面积数据拎出来,例如图4-1中的114.7

14

湖南商务职业技术学院毕业设计

㎡,然后采用replace()方法,将换行符和空格替换成空字符串,最后将单独的

数据提取出来,完成清洗后的数据如下图4-2。

图4-2面积字段清洗完成界面

2.在爬取二手房地址时发现地址分别存在两个span标签中,如图4-3,这

样导致我们爬取下来的地址也是分开的,不完整的。

图4-3地址字段分析界面

此处我们采用join()方法,将两个span标签中的内容使用‘-’符号拼接

起来,如图4-4,这样得到的就是完整的地址了。

图4-4地址字段清洗完成界面

3.在爬取楼层位置和建造时间时,发现有些二手房这两个字段没有数据,

从而导致了数据空缺,程序报错。如图4-5。

图4-5建造时间字段分析界面

我是这样解决的:使用try方法抛出这个异常,也就是说我们每个数据都

15

湖南商务职业技术学院毕业设计

是对应存在的,每所二手房都应该有与其对应的建造时间,如果爬到这里,程

序发现这个地方没有建造时间这个字段的数据,那么我们就将其替换成一个空

字符串,从而使程序能够正常运行,如图4-6。

图4-6建造时间字段清洗完成界面

4.2数据储存

在Python开发中,存储的方法有很多,数据的读取和存储是必不可少的环

节。常用的可以直接用记事本格式储存(txt),或者直接用其他文件的形式储

存csv、excel、json等,但是以上方法保存的数据体量普遍都比较小,如果需

要储存较大的数据信息就需要用到我们的数据库。

本次项目我用到的是第三方库xlwt直接将清洗后的数据储存到excel中,

先设置好要爬取的字段,也就是列名,然后将其写入excel表sheet1中,最后

将文件保存为xls文件。存储后的文件如图4-7所示。

16

湖南商务职业技术学院毕业设计

图4-7数据存储为excel页面

4.3编程实现

步骤一,将数据采集部分中爬取的字段进行分析,不符合要求的字段都将

其进行清洗,编程实现如图4-8、4-9、4-10。

图4-8去掉换行符和空格代码页面

图4-9拼接地址代码页面

17

湖南商务职业技术学院毕业设计

图4-10处理时间字段缺失代码页面

步骤二,进行数据的存储,编程实现如图4-11。

图4-11数据存储为excel代码页面

步骤三,数据存储后读取源数据文件,显示数据清洗之后的前面10行数据,

如图4-12,数据成功显示,表示我们爬取、清洗和存储编程成功实现。

图4-12前10行数据展示页面

18

湖南商务职业技术学院毕业设计

5数据统计与分析

5.1数据准备

分析长沙各区二手房数量,导入相关库,如图5-1,打开爬取到的

house_information.xls文件,对长沙各区二手房数量进行统计,如图5-2,下

图5-3为各城市的门店数量。

图5-1导入相关库页面

图5-2数据准备页面

图5-3数据加载页面

分析长沙不同户型二手房的占比情况,导入相关库,打开爬取到的

house_information.xls文件,对不同户型的二手房进行统计,如图5-4,下图

5-5为不同户型的二手房的总数。

19

湖南商务职业技术学院毕业设计

图5-4数据准备页面

图5-5数据加载页面

分析长沙各区二手房平均每平方米单价情况,导入相关库,打开爬取到的

house_information.xls文件,对不同区域的二手房单价进行计算,首先需要按

区域分类,再分别计算每个区域的二手房单价,用到了agg{}方法和mean()函

数,如图5-6,下图5-7为不同区域二手房平均每平方米的单价。

20

湖南商务职业技术学院毕业设计

图5-6数据准备页面

图5-7数据加载页面

21

湖南商务职业技术学院毕业设计

5.2数据展示

5.2.1依据长沙各区二手房数量进行统计

图5-8数据展示页面

将在house_information.xls文件中区域的字段数据进行汇总和处理然后

统计其出现的次数,经过统计后的数据再按照频数生成条形图,如图5-8中可以

看出在长沙各区都有二手房房源,由此可知,二手房也是我国人民百姓购买房

子的一种行径,正在慢慢成为房地产市场的战场。从条形图中不难看出,岳麓

区的二手房房源数量最多,其次是望城区,最少的是长沙县和星沙区,当然,

我们爬取的只是部分数据,每个区的二手房数量应远不止此,但是这也是大概

的趋势。

从侧面分析这些地区的房地产行业发展是向上的,如果有想购买二手房的

顾客,可以考虑二手房数量较多的岳麓区,数量多,选择也会更多,或许在这些

二手房中能找到适合自己的。长沙是一座网红城市,经济发展越来越快,大部

分居民都会有较强的区域情节,因此不舍得离开生活了多年的地方,不适应其

他环境,担有买不到适合的商品房,这时,二手房则是一个不错的选择,“带

装修,即搬即住”,满足大部分顾客的需求。

22

湖南商务职业技术学院毕业设计

5.2.2依据长沙二手房房屋户型进行统计

图5-9数据展示页面

图5-9饼图将长沙不同户型的二手房数量进行了统计,可以明显地看出,

在各个二手房户型中,最多的户型是3室2厅2卫,其次是3室2卫1厅,紧

随其后的是4室2厅2卫。

这也从侧面说明了顾客需求最多的户型是3室2厅2卫,二手房市场是最

接近人口的住房市场,二手房地产市场的健康发展,能够拉动整个房地产市场

的启动,呈现出巨大的连锁反应。同时为房地产市场也提供了建议,往后的房

地产建设房子的户型可以多往以上提到的户型发展,这几类户型的购买人群多,

但是房子的质量也一定要有保障。

23

湖南商务职业技术学院毕业设计

5.2.3据长沙各区二手房平均每平方米

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论