利用Python一键爬取上海二手房信息

本文利用Python爬虫分析了上海二手房市场,包括房价走势、热门商圈、户型分布等,发现外环外房源最多,均价超过30万元/平米的房源主要在高端住宅区,同时揭示了上海各区域的房价特点和变化趋势。
摘要由CSDN通过智能技术生成

此次项目使用Scrapy-Redis分布式爬取,请自备代理ip

仪表板显示

在这里插入图片描述

项目背景

我在上海工作的时候有朋友就发信息问我上海一些二手房的价格情况,作为一个二愣子我只知道上海哪个区贵,但是不知道具体是什么价格,所以我就想着爬取一下上海的二手房。

从政策上来看,自从2016年国家喊出了“ 房主不炒 ”的口号之后中国的放假就出现了明显的降温。
2019年国家为了“救市”又宣布了几条政策:

1,政府不再垄断住房供应,缓解了开发商的资金压力,新房销售价格降低,导致新房市场火热而二手房市场冷清。
2,调整公积金贷款利率,提高了二房的房贷利率,打击市场投机需求。
3,鼓励租售并举,鼓励以住房租赁为主营业务的企业买房。
4,居住证降低申请门槛新政,让落户买房更加容易。
5,农民购房有补助,帮助农民工朋友们省去一部分买房成本。

从经济上来看,2020年上半年上海人均可支配收入以 36577 元笑傲全国,同比增长3.64%。看似美丽的数值背后,隐藏着多少被平均的普通老百姓。
从社会上来看,2019 年我国人口出生率创下1949年以来的最低值,即使在2016 年开放二胎政策以来,人口出生率也没有大幅提高。
从技术上来看,中国造楼能力世界第一!“基建狂魔”岂是浪得虚名!

分析目的

1,2020年上半年上海二手房整体挂牌量及均价走势如何?
2,目前上海二手房价位、房源有何特点?
3,上海各区县的挂牌情况,找出抛压最大的区域

数据清洗

首先我们看一下爬取的数据。维度不是太多,但是有些列我们可以拆分,例如地区、所在楼层、抵押信息等。

在这里插入图片描述

在对数据进行清洗前我们可以使用pandas_profiling进行快速的统计分析。

import pandas_profiling
pandas_profiling.ProfileReport(data).to_file("./report/html")

在这里插入图片描述

根据报告内容我们可以看到本次数据总共有 37491 行,20 列,存在 7行重复,重复占比小于 0.1%,报告继续下拉可以看到每一列的统计情况。
我们需要清洗的几点:
1,把重复的去掉
2,替换空(None)值
3,将地区,房屋户型,所在楼层,抵押信息进行切分合并
4,转换数据类型
5,删除多余字符
6,由于爬取时出现的错误,对价格列进行重新赋值
7,去掉异常数据

 #如果有重复值,则保留第一个
data.drop_duplicates(keep='first', inplace=True)

# 替换None
data = data.applymap(lambda x: '暂无数据' if x == 'None' else x)

# 切分地区、房屋户型、所在楼层、抵押信息后删除原列,将拆分出的新列合并至原data
data = pd.concat([data, data['地区'].str.extract(pat='(?P<区>.*?)\s(?P<镇>.*?)\s(?P<环>.*)'),
                  data['房屋户型'].str.extract(
                      pat='(?P<室>\d+)室(?P<厅>\d+)厅(?P<厨>\d+)厨(?P<卫>\d+)卫'),
                  data['所在楼层'].str.extract(
                      pat='(?P<所处楼层>.+)\(共(?P<总层数>\d+)层\)'),
                  data['抵押信息'].map(lambda x:x.strip()).str.extract(pat='(?P<有无抵押>.{1})抵押(?P<抵押情况>.*)?')], axis=1)

data.drop(['地区', '所在楼层', '抵押信息'], axis=1, inplace=True)
data['区'] = data['区']+'区'
# 去除建筑面积后面的平米单位,并转为float
data['建筑面积'] = data['建筑面积'].map(lambda x: float
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值