本篇文章主要会讲如何从网站上爬取租房数据,清洗数据,聚合数据,并最后用机器学习来分析影响租房价格的主要因素有哪些。
目录
0、前言
由于去年下半年开始的地产行业大整顿,导致整体的行业大环境并不理想,所以我,一个做了7年商办地产投资的从业者决定在30岁之际换个方向,主要方向还是在数据分析+机器学习这块,这篇也算是我在这段时间自学后做的小小的一个研究,希望能和大家多多交流。
1、爬取数据
我们希望能够取得上海市全市的租房数据,进行分析研究。
那选取的获取数据的网站当仁不让,还是万能的【链家网】,主要原因有两个:一是链家上的数据比较全面且相对比较真实,二是链家没有反爬机制,只要你请求时间设置一定间隔基本上没有风险(像我就前前后后完整的把链家租房数据爬了4、5次,没有碰到过反爬)。
打开链家网,进入到租房总览界面,可以看到目前(2022年6月17日)的租房数据共有20246条:
调出F12,会发现下面每个房源信息也不存在ajax动态请求,都是能够在当前页面源代码中呈现的,但是别开心的太早,再往下拉会发现,在总览界面中能看到的房源信息只有100页,每页30个房源,即如果直接从总览页面中爬取房源信息,总共只能获得3000个房源,远小于显示的2万条房源。
那么既然在总览页面中无法完整获取,就只好在“按区域”中分别获取房源。
经过探索还发现,如果仅仅通过行政区来分块获取房源,由于【浦东】房源数较多,仍超过了3000条,还是会有遗漏。那索性在每个区域下,再按版块进行分块获取,就能够做到获取全部的房源了。
目前的爬虫思路是:通过循环1获取所有【行政区】的总览url,再通过循环2获取所有的【版块】的总览url,再通过循环3获取到当前板块中所有【房源】的详情url。
进入到具体租房房源界面,可以观察到租房信息还是比较全面。
把我们认为有用的信息比如:小区名称,房租,朝向,面积,房型,精装修,总楼层等都可以爬下来。
另外,链家也在房源详情界面上放了房源的位置,在源代码中也能找到房源的经纬度,且链家的地图也是用的百度地图,所以不需要进行地图编码的转换,把经纬度爬下来以作备用。至于周边有什么地铁线路,多少距离这些我们先放着不爬。
基本