1、明确分析的目标和思路
分析思路:通过python爬取链家 二手房信息,经过数据清洗、规约等处理后,导入Tableau软件,进行可视化分析,得出结论。
2、爬取链家 二手房信息
以上海市中心城区为分析对象,包括黄浦、徐汇、长宁、静安(包括原静安和闸北)、普陀、虹口、杨浦。
首先,打开链家 ,分析 页中的元素,如下图
标 1处是各行政区的小区数量,这个数字可用来控制python生成的小区列表页 址的数量;
标 2处是小区列表页各个小区的链接,可以获取链接的 页地址,进去各个小区的详情页,从而爬取各个小区的信息。
接下来,就可以用python编写爬虫程序了。
(1)导入需要用到的模板
(2)分析链家 小区页面的URL地址后,可以发现其中的规律,定义area_urls()函数,获取各个行政区小区页面的首页URL地址
(3)定义detail_urls()函数,获取所有的小区页面的URL地址,这时标 1处的小区数量就派上用场了
(4)定义get_community_info()函数,爬取小区信息(小区名称、地址、房屋总数、建筑年代、小区均价、在售二手房)
最后,把爬取的结果存到Excel文档中。
3、数据处理
(1)根据小区地址字段解析地图经纬度,这里用到软件XGeocoding,工作界面如下:
结果输出如下,P、Q列即为纬度和精度。
(2)绘制各区的多边形地图的坐标点,用到软件Draw Tool for Tableau,界面如下:
结果输出如下:
这样就可以在Tableau地图上绘制多边形地图了。
(3)数据规约
买卖活跃度 = 在售二手房 / 房屋总数
建筑年代根据“5年以内”,“10年以内”,“15年以内”,“20年以内”,“20年以上”分为五类,分别评分100/80/60/40/20。
区域人口稠密程度 = 面积 / 人口数(百度可知)
最终处理好的数据如下所示:
4、数据可视化
(1)分析各区域的人口稠密程度
根据多边形地图颜色的深浅可知,长宁区的人口稠密程度最高,虹口区最低。
(2)分析小区房龄的分布情况
如图所示:
a. 上海市中心城区的小区房龄大部分在20年以上;
b. 越往外围扩散,房龄小的房子越多。
(3)分析小区均价的分布情况
如图所示:
a. 均价高的小区多集中在内环,越往外围扩散,均价越低;
b. 由于黄浦区基本都处于中心区域,所以均价高的小区数最多;杨浦区和普陀区的位置相对较偏,所以均价相对低的小区居多。
(4)分析小区的买卖活跃度
如图所示,基本与小区房龄的分析图如出一辙,上海市中心城区的小区买卖活跃度相对外围小区偏低。
原因分析如下:
a. 中心城区房价偏高,且住户多本地老人,换房意愿不强;
b. 外围小区的房价较低,且住户多年轻人,刚需或置换意愿较强。
文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树 络爬虫urllib208363 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!