现如今,房价问题一直处于风口浪尖,房价的上涨抑或下跌都牵动着整个社会的利益,即便是政府出台各种政策方针也只能是暂时抑制楼市的涨势,对于需要买房的人来说,除了关注这些变化和政策外,还有一个非常头疼的问题,在哪里买房,房价怎样。一般的人会不停花大量精力逛链家、安居客等房地产网站,借助他们展示的内容进行筛选,但因地区众多,各个地段、房价差异的对比以及入手时机的把握,都得自己去一个个查阅与分析,非常麻烦。倘若可以通过数据的爬取,再按照自己希望的维度统计、分析与展示,会让数据变得清晰明了。本项目旨在提取并展示数据,为刚需购房者提供有用信息。
1 爬取房价数据
1.1 网页数据爬取
爬取某个网页的房价要查看那个网页的信息,我们爬取链家网站上的深圳二手房,打开链家网页:深圳深圳二手房房源_深圳深圳二手房出售|买卖|交易信息(深圳链家)。用F12以页面中元素进行检查
分析html代码,了解页面结构,然后获取你需要爬取内容在html代码中的路径,再稍微做些整理,就可以得到你想要爬取的内容,主要用的是beautifulsoup。我们要爬取深圳各行政区的房价数据,首先在Python里面编辑行政列表。
在爬取数据之前,我们需要设置请求头headers信息。包括User-Agent和Cookie。有些网站设置了反爬,因此我们需要让爬虫更好的模仿人类的操作。设置User-Agent可以让网站确定是人们在操作,设置Cookie是为了让浏览器保留我们操作后的信息,增加爬虫几率。具体的爬虫代码如下:
1.2 数据展示与处理
爬取网页中每个房价的字段信息包括位置,总价,每平米价格,面积,几室几厅等等。
爬取的数据,保存在python文件,然后对数据进行展示
因为直接爬取的数据,不能用来分析,还需要对数据进行简单处理,比如,具体信息这个字段包含很多详细的信息,所以要对这个数据信息进行提取,处理后的数据如下图所示。
2. 数据分析与可视化
2.1 数据变量
查看数据中每个变量的类型,如下图所示。
查看是否有缺失值,代码如下图所示,可以看到数据中存在缺失数据,我们对缺失的数据用0值填充。
2.2 变量分析与可视化
在数据分析之前,我们导入必要的库函数,如pandas numpy和matplotlib等工具。
接下来对变量进行查看,对部分数值数据进行展示。
对爬取的数据部分特征进行分析,首先对房子每平米的价格分析,可以看到
均价是在59598元每平方米,最小的价格是10000每平米
对这个数据画图展示,如下图所示,大部分房子的均价在60000元每平米左右。
对每个行政区的房子均价进行分析,可以看到,福田区的房价是在最高的,南山是第二高,盐田区是第三高的
对每套房屋的总价进行分析,代码如下图所示,可以看到深圳市每套房的均价是626万,最高可达6800多万,通过绘图可以看到,每套房均价在600万和700万附近。
对每个地区的房屋总价进行分析,可以看到南山区的每套房子是最高的,盐田区靠近郊区,所以房价排名最后。
对房屋的建筑时间进行分析,可以看到最早的房子是1981年建造的,最晚是今年2022年建筑的。绝大部分房子基本在2005年建成。
对房屋的面积进行分析,全市的房子的面积在100平方左右。
对深圳市各个位置的房子出售量进行分析,可以看到南山中心的出售房子是最多的,其次是沙头角、莲塘、蛇口等等地区,如果需要看房可以多去这些地方。
对房子的样式进行分析,绝大部分是塔楼结合或者是塔楼的样式,个别还有别墅出售的,但是数量很少。