当前位置:文档之家› 基于python对“中国新一线城市”2017年新建商品房房价数据挖掘

基于python对“中国新一线城市”2017年新建商品房房价数据挖掘

基于Python对新建商品房房价数据的挖掘分析
摘要:在大数据的背景下,各行各业的发展对数据的依赖度越来越高。

利用数据分析,为决策者提供决策依据,更是成为当前商业形式的一大趋势。

同时房价信息牵动着,反映着很多经济、民生、就业的信息。

所以房价信息是极有价值的一种数据信息。

在对房价数据分析的难题有二,一是大量数据的获取,二是对数据的分析和挖掘价值。

本文将介绍python抓取数据和分析数据,同时提取出具有商业价值的数据。

本文将分为两大模块,一是利用python 获取数据,二则是利用python分析数据。

关键词:python;数据分析;网络爬虫;python数据分析
Abstract: In the context of big data, the development of all walks of life increasingly depends on data. Using data analysis to provide decision-making basis for decision makers has become a major trend in the current business model. At the same time, the price information reflects, reflecting many economic, livelihood and employment information. So house price information is a very valuable kind of data information. There are two problems in the analysis of house price data. One is the acquisition of large amounts of data, and the other is the analysis and excavation of data. This article will introduce python to grab data and analyze data while extracting commercially valuable data. This article will be divided into two major modules, one is to use python to obtain data, and the other is to use python to analyze data.
Key words: python;data analysis;web crawler; python data analysis;
目录
摘要 (I)
Abstract (I)
目录 (Ⅱ)
1 利用爬虫获取数据 (1)
1.1 爬虫原理 (1)
1.2 爬虫程序编写 (1)
1.2.1 框架还是原生 (1)
1.2.2 创建项目 (2)
1.2.3 定义Item (3)
1.2.4 爬虫编写 (4)
1.3 数据存储 (6)
1.3.1 编写item pipeline (6)
1.3.2 启动item pipeline (6)
1.3.3 开始运行爬虫 (7)
2 数据预处理 (7)
2.1 数据清洗 (8)
2.2 数据集成 (8)
2.3 数据变换 (9)
3 数据可视化 (9)
3.1 各城市新房信息可视化 (10)
3.2 各城市房价信息可视化 (11)
3.3 各城市房价中位数和平均数可视化 (14)
4 数据挖掘 (15)
4.1 可行性分析 (15)
4.2 线性回归 (16)
4.3 训练数据,建立回归方程 (16)
1 利用爬虫获取数据
随着互联网和大数据时代的到来,互联网和大数据的发展相当的迅速和空前,正改变着各行各业的生活和工作方式,这也是为什么在我们身边有这么多互联网+的项目或以此为名号的产品的原因。

而网络数据爆炸性的增长,对数据分析提出了新的挑战。

即使现在的搜索引擎有了很大的进步,但在浩瀚如宇宙的网络数据中提取满足数据需求的数据,仍然是一件困难和费时的事情。

尤其是一些特殊的数据,单单利用搜索引擎是不能满足数据需求的。

而利用网络爬虫自定义的,有目的性的爬取数据,能够将数据批量获取汇总,格式化为满足数据分析需求的数据。

这将极大的提升工作效率。

1.1 爬虫原理
网络爬虫又被叫做网络蜘蛛,网络机器人,简称爬虫,简单的解释就是,一种按照事先指定好的策略,按照一定规则和目的自动浏览互联网,保存互联网信息和数据的程序。

对爬虫程序应用的最为普遍的就是搜索引擎这一类的网站,这一类的网站通常会通过爬虫程序更新自身的网站内容。

并且近年火热的大数据,其中绝大部分的大数据初创公司依然会依靠爬虫程序来获取各种维度的数据集。

这两类的爬虫程序一般比较复杂和高难度,用以达到高可用的爬虫程序,使其能持续性的运行,源源不断的获取数据。

当然本文的爬虫类型和形态还不能达到大型的网络爬虫项目。

但已经足以满足本文需要的数据分析需求。

爬虫的工作流程大致分为五个步骤,发起网络请求,保存网页内容,解析网页内容提取数据,格式化数据内容,保存数据。

1.2 爬虫程序编写
在本节,笔者会完成本文获取数据的爬虫程序的编写,本次获取数据的爬虫会基于著名的爬虫框架scrapy进行开发编写。

1.2.1 框架还是原生
大部分程序可以分为,计算密集型和IO密集型任务程序,爬虫属于IO密集型任务。

也就是说,影响爬虫性能以及速度的因素通常不是CPU的计算能力,相比较计算量巨大的程序来说,爬虫程序更多的时间花费在了I/O操作当中。

所以在解决爬虫效率瓶颈上,需要从如何充分利用I/O等待的时间的角度解决问题。

并且由于python的特性,有全局锁的限制,使用多进程来说往往会是更好的选择。

业界著名的开源爬虫框架scrapy,自身的设计实现拥有一个默认10个线程的twisted线程集,这是一个可以极大提升爬虫抓取效率的解决方案。

而scrapy 是高效率的爬虫框架,就算是单机运行,一个小时也可以处理几十万条数据。

省去了自己编写爬虫的效率问题和线程安全问题。

同时,scrapy对网络请求,网页解析,数据存储,都有很好的封装。

让编写爬虫更简单快捷。

开发网络爬虫的大体思路几乎大小爬虫都是一致的,从而很多开发团队都会有自己的一套爬虫框架,或则是使用开源的python爬虫框架。

如此做可以极大减少“重复造轮子”,将效率提升的同时,还可以使项目更加规范化,大大方便日后对项目的维护和管理。

鉴于以上原因,本文爬虫部分项目将使用python著名的爬虫框架scrapy进行开发。

1.2.2 创建项目
首先进到将要用做项目路径的目录,使用scrapy命令创建一个爬虫项目,用到的命令是scrapy startproject HousePrice,创建完毕后,会在项目目录下发现如下图所示几个文件:
图1-1 项目列表
这些文件分别代表的含义是:
Items.py:项目中的变量文件集合,初始化抓取的数据字段;
Settings: 项目中的配置文件,定义了爬虫程序运行的规则,以及依赖的相应服务和配置参数;
Pipelines: 项目中管理存储数据的文件,管理程序运行最后阶段存取的设置;
Spiders:该目录是存放爬虫文件的地方。

1.2.3 定义Item
编辑Items.py这个文件,添加变量名,确认我们需要爬取的字段有哪些,并且作为爬取到的数据的容器。

在scrapy中将所要提取的字段名全部定义到items文件当中,这个文件需要继承自scrapy.Item这个类,并且需要将字段名定义为scrapy.Field()类型。

编写起来也很简单,只是相对于以往开发爬虫多了对字段的类型定义和类的继承与封装。

接下来去到有房价信息的网站,将需要抓取下来的字段定义好,就可完成Item的定义。

经过对房价信息网站的调研,我们抓取以下字段,楼盘名,地理位置,房型,区域空间,销售情况做数据分析。

相关主题