目标:深圳租房信息
数据获取
需要爬取的信息 ---->
分析该网站的html结构,获取这些字段
使用requests,BeautifulSoup,,,各种包爬取数据
得到的csv如下:
数据清理
合并由于反爬虫而多次爬的csv数据
去重(drop)&&数据列的拆分(正则)&&整理列的顺序
处理完以后的表格结构,把位置,房间大小,出租的形式以每一列的形式展现:
数据分析
初步观察数据的特征值的缺失情况 ,表示没有缺失值,初步验证发布58租房信息时这些消息都是必填选项。(sz_rent.describe())
统计特征值是数值的的统计值(sz_rent.describe()),包括平均数,中位数,标准差,最小值,最大值,四分位数,75%分位数。这些结果简单直接,初步了解一个特征值非常有用,比如我们观察到size的最大值140平方米,最小是9平方米。
接下来用可视化来清晰的展示各个数据的关系。
新建一个房子的每平方米的出租价格perPrice插入表格,如下
可视化分析
region特征分析
使用了pandas的网络透视功能groupby分组排序。区域特征可视化直接采用seaborn完成,颜色使用调色板palette参数,颜色渐变,越浅说明越少,反之越多。
如上可以得出观察到:
每平米租金:福田>南山>罗湖>宝安>龙华>龙岗>盐田>光明>坪山基本符合我们广大租房群众的租房常识。
出租房的数量:龙华>宝安>罗湖~福田~南山 >坪山。关外房子数量多啊,关外啥都好,房价便宜,吃的便宜,但是就是交通不便。总总优势,所以还是选择关外的租房的人会多一些把。
通过箱型图看到,各大区域房屋总价每平米中位数都都在200以下,且房屋总价离散值较高,最高的点是在大冲,第二高点在福田,科技园和金融的大佬居住的地方,离公司近,无所谓房租。
size特征值分析
Size 与 Price 的关系:
通过 regplot 绘制了 Size 和 Price 之间的散点图,发现 Size 特征基本与Price呈现线性关系,符合基本常识,面积越大,价格越高。但是有两组明显的异常点:1. 面积120左右的租金价格在12000。2. 一个点面积140平米左右,价格偏低,需要查看是什么情况。
猜测应该是位置的原因把。
1.
2.
南山地铁口的房子,靠近腾讯大厦,三条地铁线,科技园的中心,所以租金。
公明,还没开发的光明新区,没有通地铁,所以租金那么低。
选择租房地址,不仅仅要考虑租金,交通也是很重要的。
====符合大家租房常识。
layout 分析
单间出租比较多,一室一厅,一室0厅都是单间出租。反向推理,大部分人也还是比较愿意一个人住。
出租房间类型与价格分析
整租的数量多一些,然后单间的每平米价格会更高,观察数据得知单间的大都时候是整套里面所谓的一间出租,自然面积会小很多,导致单间每平米的租金会高一些。然后添加月租金和出租类型的关系得证。
遇到的坑:
1.问:安装pip3及各种package
答:折腾了很久,然后发现是网络的问题。
--添加代理 pip3 install -i pypi.doubanio.com/simple/ IPytho
2.问:58的反爬虫-登陆机制
答:没有gg到对应方法,采取了多次分批爬虫;
3.问:58的反爬虫-数字采用加密的方法
答:找到对应的密文转化成二进制保存到woff字体中并转为xml文件
观察字体文件,一一变为正常字体
4.问:数据可视化中文字体显示为方块
答:下载SimHei.ttf拷贝并安装到本地,修改配置项,重启python'
总结
这是一篇很鸡肋的分析文章,都是在我们可以推理得到的基础上,当然这篇主要是为了学习用python进行爬虫,数据清理,然后学会用各种工具对数据进行分析。
学习的过程中当然也存在一些问题:
爬虫的数据不够多,--好好学习一些反爬虫的技巧
分析的比较浅显 慢慢积累多挖掘
需要做更多的特征工程工作,数据清洗,特征选择和筛选
使用统计模型建立回归模型进行价格预测最后:github地址:
github.com/heavy-snowy…