本文将向读者展示利用Chrome插件Data Miner,抓取theredpin.com的房地产数据,并做简单分析的过程。
章节
- Data Miner爬虫介绍与安装
- TheRedPin MLS HTML代码分析
- 建立爬虫XPath规则
- 三维地图
- SPSS简析
- 导入微软Azure机器学习~
Chrome Data Miner 爬虫
首先,这是Data Miner插件的官方介绍:
Data Miner is an add-on for Google chrome browser that helps you extract data from web pages and into an Excel spreadsheet or CSV file.
简而言之,这款插件通过用户建立某些抓取规则,能够自动抓取网页上的目标信息,并且转化为更容易分析的格式(比如Excel文件)。
- 登录网站,用自己的Google账户即可创建新账号;
- 根据提示安装Chrome插件(https://chrome.google.com/webstore/detail/data-scraper/nndknepjnldbdbepjfgmncbggmopgden);
- Chrome右上角出现一个红色斧子的图标,就代表安装完毕了。
PC: moveisfigueiredo.com
数据源:Theredpin
我们的房产交易信息的数据源来自TheRedPin。我们现在需要拉取多伦多城市目录下的所有MLS Listing。
https://www.theredpin.com/on-toronto/mls-listings-for-sale/page-1
打开这个页面后,在网页空白处点击右键,选择检查(inspect)。
好了,现在让我们点击刚才安装的Data Miner插件,点击红色图标,选择 Create Recipe。毕竟你要养的爬虫,得先把食谱喂给它,告诉它怎么吃饭(扒数据)不是?
这是一个列表式的网页,同样格式的信息反复出现。这样的网页就非常适合我们抓取啦!
所以,我们需要找到哪些格式的元素是反复出现的,给我们的蜘蛛框定一个重复的母区域。
通过用光标扫描右侧的代码,我们找到了MLS卡片所在的母框。这是一个div
标签。那怎么告诉蜘蛛你的div
标签在哪里呢?这里我们需要找到这个div标签的身份识别特征。比如这里的div
有一个独特的bootstrap class名:listview-card-wrapper property-card image-active row collapse
<div class="listview-card-wrapper property-card image-active row collapse" data-id="1761360" data-fav-id="" data-listing-type="property"&amp;amp;gt;
对于这样的标签,我们的XPath路径可以这样编写:
//div[@class="listview-card-wrapper property-card image-active row collapse"]
把它填写在 XPath for rows:
框定了row的范围后,我们可以开始定位具体的数据。在这里,数据列有:
- 房源地址
- 报价
- 地图经纬度
- 房型
- 卧室、浴室
- 住房面积
- 贷款月供、返佣
比如寻找房源地址,同样利用Inspect工具,我们可以找到:
在这里,地址位于a标签,特征为 itemprop=”significantLink”
所以我们的XPath是:
.//a[@itemprop="significantLink"]
但是,我们发现,在定位房型、卧室、浴室、面积时,这4个数据列所在的div标签一毛一样,都是:<div class=”listing-attribute-val”> 1 </div>
那么,在我们录入出现过第二次的标签时,需要用括号把之前的标签括起来,在后面加上出现的次数:
所以,卧室的XPath是:
(.//div[@class="listing-attribute-val"])[2]
随后,把这些XPath录入XPath for columns,这个页面的抓取规则就做好了。
但是,这个Listing有237页啊!怎么让他自动翻页呢?
Data Miner提供了Autopagination的功能,和之前一样,我们需要找到“下一页”的按钮,并将其用XPath定位。
在html源码中,我们找到:
<a href="/on-toronto/mls-listings-for-sale/page-2/"><i class="icon icon-chevron-right white">
同理,它的XPath是:
//i[@class="icon icon-chevron-right white"]
把它填入自动翻页的设置,每3秒翻一次页,模拟浏览器点击。
一切完成后,点击开始自动翻页(Start Auto Pagination),蜘蛛就开始工作了。
嗯。
等待抓取完成后,我们可以把数据导出到Excel。一共采集到2355条有效数据。
接下来我们就可以用这些数据来干坏事啦哈哈哈哈!
由于时间关系,没有检查数据的可靠性,没有删掉无效数据和outliers。所以下面的图表可能都是错的。
比如将经纬度和价格数据导入三维地图。(Excel 2016)
喂 downtown的那根擎天柱是怎么回事?
热力图:
价格分布:(SPSS)
价格和贷款月供:
导入SPSS,3-D散点图:
别的就懒得截图了。
导入Azure Machine Learning
把data cleaning后,导入Azure ML的dataset。训练预测贷款月供。
Azure ML的操作已经写过了,在此不做赘述。(https://ysoup.org/it/azure-machine-learning-experiment/)
部分预测结果: