房价永远是最让人头疼且激动的话题,尤为是在帝都,多少人一生都为了一套房子打拼。正好我也想用一个你们比较关心的话题做为案例,把目前我开发的这套软件进行一次完整的演练。从数据采集,到清洗,分析,和最终可视化和报告的呈现,实现一次完整的流程。一方面能够给你们切实的分享一些有用的信息,再者能够更好地了解这套软件的使用流程。 关于本工具的介绍,可参考数据挖掘平台介绍(综述)——平台简介。html
天然的,文章分为四部分,本节是第一部分:数据爬取和采集。正则表达式
俗话说巧妇难为无米之炊,没数据,分析就没有了意义。为了找到合适的数据,我翻到了链家的官网。http://beijing.homelink.com.cn/ 这里的数据虽然远远算不上准确吧,毕竟挂在网上的东西和真实数据确定会有差距,但可读性很好,数据也比较全。咱们就看看怎么去爬取这些数据吧!算法
链家官网:数据库
总共的房源数是72964套在售,主要关心的数据是面积,价格,位置,特色,地理坐标,看房用户等(反映热度)。咱们就看看能不能把这些数据抓到手!浏览器
本次介绍的网页采集器有以下特色:工具
首先把“网页采集器”模块拖放到算法处理器中:post
下图是 网页采集器 的设置菜单:测试
首先 填写URL路径,为二手房的数据路径,通常默认编码为UTF-8, 程序中作了对编码格式的识别功能。点击访问网页:编码
便可在主窗口中,分别以原始HTML方式和浏览器方式浏览该网页:url
我通常会选用HTML 源代码的方式查看数据。
将感兴趣的数据,从HTML中拷贝到“筛选字段”对话框中,系统会自动查找对应的路径
给属性起个名字,好比“介绍” ,点击添加字段,便可完成一个属性的添加。
一样的,能够把超连接也作一样的处理,添加字段。
在选择数据时,尽量选择比较有表明性的数据,同时,要把数据分布在列表的不一样项中。
你能够随时查看和修改添加的属性,在高级选项中,点击属性列表:,便可查看当前添加的全部属性,并进行增删改查。
在选择了五个感兴趣的数据以后,可点击“开始爬取”。此时程序会尝试在本网页上进行一次抓取,咱们可经过这样的尝试判断程序执行的准确性:
获取了12项,同时点击查看:
相似的,咱们能够将其余包括楼层数,朝向等,都经过相似的方法进行添加。若是确实一些数据程序没法自动发现,可经过手写XPATH进行解决。
添加了多达10个属性,并进行网页爬取测试后,咱们认为程序设置没有问题了,那就能够进行批量网页爬取了。
具体的方法,能够设置批量任务属性。 从网页上看到,总共有6073页:
同时,不一样的页面区别仅在URL的最后:
http://beijing.homelink.com.cn/ershoufang/pg2/
http://beijing.homelink.com.cn/ershoufang/pg6074/
因此批量参数能够写成:
http://beijing.homelink.com.cn/ershoufang/{0}/ ,能够把须要替换的数字改成大括号括起来的形式。
加上10ms的延时。
将当前的爬虫保存为一个任务,同时起名字为“链家爬虫”
接下来,便可在菜单栏中, 运行->任务->启动批量任务
选择要执行的任务为“链家爬虫”:
设置要遍历的模块为网页采集器:
选取遍历的参数:
设置参数列表:
能够在左侧填写间隔,最大值和最小值生成参数,同时也能够在右侧,以每行一个参数填写要遍历的参数。咱们生成的参数为1-6074
点击完成,便可执行批量任务:
大概在两小时后,便可爬取全部的数据~~~哈哈哈
查看一下战果:
咱们将数据导出成文件,方便下次进行分析。(也能够保存到数据库)
选择文件格式,填写文件名:
选择要导出的字段,和是否要修改字段的名称:
点击肯定,便可将数据导出完毕。
任务完成!
此次战果斐然,在两小时内采集了七万条数据,而整个配置的时间仅仅不到两分钟。可是必须发现,有不少数据是有问题的,好比面积和一些属性为空,会对后期作数据分析形成影响。所以下一节咱们介绍数据清洗工做,敬请期待。