怎么用Python采集北京二手房数据

发布时间:2021-11-22 11:33:03 作者:iii
来源:亿速云 阅读:156

这篇文章主要介绍“怎么用Python采集北京二手房数据”,在日常操作中,相信很多人在怎么用Python采集北京二手房数据问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用Python采集北京二手房数据”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

1、工具说明

本文用到的 Python 库有

怎么用Python采集北京二手房数据

外加百度地图 API

2、数据采集

所有数据来源于链家二手房交易平台,上面每页排列 30 条二手房数据,本文采集了前 100 页 数据,每条二手房交易数据中提取 标题、单价、价格、地址、年份、房间样式 等字段作为可视化分析的数据来源

网站没有设置很强的反爬机制, 爬取时用的是 requests + Cookies+ PyQuery 组合即可,最好在爬取时加条 time.sleep() 命令,隔几秒休眠一次,部分代码如下:

怎么用Python采集北京二手房数据

最终一共采集到 3000 条数据

3、地址经纬度坐标转换

获取到的数据是地址是字符串形式(例如梵谷水郡*酒仙桥),后面地图位置标记时需要经纬度数据,需要把所有地址转化为经纬度坐标,这里借助了百度地图 API 完成这步操作

1、百度地图 AK 申请

API 的使用需要在百度地图开放平台申请一个 AK 效验码,登录自己的百度账号,在控制台创建一个应用,

控制台面板-> 我的应用-> 创建应用

怎么用Python采集北京二手房数据

其他参数默认,应用名称自定义命名即可,IP 白名单填入 0.0.0.0/0,点击提交

以上步骤操作完之后,控制台面板会多出一个应用,就是刚刚我们建立的,

怎么用Python采集北京二手房数据

2、地址经纬度坐标转换

获取到你的 AK 参数之后,把 AK 和 address(中文地址) 作为参数传入下面函数中,就能获取到对应的经纬度坐标

def get_location(address,AK):    #根据地址转化为经纬度    try:
        url = 'http://api.map.baidu.com/geocoding/v3/?address={}&output=json&ak={}&callback=showLocation'.format(address,AK)
        res_test = requests.get(url).text
        res = re.search('\((.*?)\)', res_test).group(0).strip('(').strip(')')
        lng = json.loads(res)['result']['location']['lng']
        lat = json.loads(res)['result']['location']['lat']
        print(lng, lat)
        return lng, lat
    except Exception as e:
        print('error ---------\n')
        return None

百度地图 API 的 地址经纬度转换 功能 定位不仅仅局限于省、市,还能定位到门牌号,只要你提供的地址越详细,获取的经纬度信息越准确

4、可视化分析

这一部分进入可视化分析内容,城市毕竟是北京么所以首要的就是关注房价问题,在抓取的数据中,最高的将近19万+/每平方,最低的仅有 1.5 万/每平方

怎么用Python采集北京二手房数据

我看到 1.5 万每平方就不淡定了,这数据肯定有猫腻(北京房价按常理不可能这么低);为了验证想法,首先做了房产地段标记先看

怎么用Python采集北京二手房数据

上面是房价最高 Top10 的地段位置,看起来地理位置还行,都是在三环四环之内、分布在市中心附件,如果单看这张图的地图的话得不到有用的信息,可以对比一下 房价最低 Top10

怎么用Python采集北京二手房数据

上面北京二手房房价排名后十 地段分布,房价在 1.5万-3万 不等,没看到这个分布图之前仅仅认为上面价格是卖家标错了,看完这个图后才发现卖家是 挂着羊头卖狗肉,挂着北京的名号,卖着北京以外的房子(有的房子已经位于河北境内),这可能就是卖房的套路之一吧

事出反常必有妖,无论买房还是买其他商品也好,卖家不会平白无故地给我们优惠,当价格远低于市场价之前交易需慎重、慎重、再慎重!

房价我分为 5 个区间,分别为 0-3万、3-8万、8-12万、12-15万,15万+ 五段,

其中房价位于 3-8万 占比最大达 76 %占比,次之就是8-12万、12-15万,依次占比为16.38%、3.46%,而房价位于 15 万 + 占比最少,仅有1.12% 左右;

接下来我们再看一下,不同价位二手房在北京的分布

15万+的

怎么用Python采集北京二手房数据

8-12万

怎么用Python采集北京二手房数据

3-8万

怎么用Python采集北京二手房数据

从地段分布来看北京房价以8万作为分水岭,8万+和8万以内房产分布明显变化,价格越高,越靠市中心以外;从地图信息来看,想在北京买一套地段不错的房子,预期房价最低也要在8万+,8 万是什么概念,也就说如果你想在北京买一套50平米的房子,最低也要 400万!

关于15万+ 的房产,大致都分布两个区域,一个是高校区(周围是人大、北航、清华等高校),另一个位于右下角,也就是北京朝阳区

北京卖的二手房不一定都是装修之后的,有可能也是毛坯(刚建造交付之后,未进行任何装修);参考下图,北京二手房中毛坯占比约1.39%共41套,户主买来这些房子大概率用于资产增值而不是作为刚需;

怎么用Python采集北京二手房数据

借助 Treemap 图再看一下北京二手房建筑时间分布,大部分都集中于2002-2010 这 9 年,北京房产也是在这段期间迅速发展, 到 2015 年之后明显收缓,源于可建筑地段已经达到饱和再加上国家相关政策的施压

到此,关于“怎么用Python采集北京二手房数据”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

推荐阅读:
  1. 怎么用Python采集web质量数据到Excel表
  2. Python如何实现北京积分落户数据

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python

上一篇:JSP的优势有哪些

下一篇:c语言怎么实现含递归清场版扫雷游戏

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》