恒大在售楼盘位置信息爬取与空间制图
2021/9/19 6:05:23
本文主要是介绍恒大在售楼盘位置信息爬取与空间制图,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
编程 | 恒大在售小区(含期房)位置信息爬取与空间制图
0.背景
2017年的世界第一房地产公司,账面流动资金3000多亿。如果有人说恒大4年后会出现倒闭风险,没人会信。从扩张到负债累累。
我关注这件事也有一年时间,期间产生了想了解恒大期房的全国分布图。因此进行了下面的探索。
1.结果展示
注意:
1.以下楼盘为在售楼盘,并非全是期房,也有一部分已完工的楼盘以及旧城改造项目。以下简称:恒大在售楼盘;
2.数据来源于恒大官网的售楼信息,共计574个楼盘;
3.地理编码信息来自百度。
1.1地图展示
1.2排名展示
省级的楼盘数如下图所示,四川省居第一:
地级市的楼盘数如下表所示,成都居第二:
县级行政单位的楼盘数如下表所示,没四川的了:
2.研究方法
3.数据处理
3.1 爬取楼盘名
(1)进入恒大的官网(https://www.evergrande.com/Business),发现在售楼盘信息。
(2)使用万能的F12键,抓取恒大的楼盘列表。
(3)观察,url的请求链接为:https://www.evergrande.com/Business/GetProjectList1/?nid=&page=2
其中,page=2为页数,使用浏览器单独获取楼盘列表:
(4)使用爬虫,将恒大的全部在售楼盘爬取出来:
#爬取网页脚本 def read_urls(START_PAGES_ID,END_PAGES_ID): for i in range(START_PAGES_ID,END_PAGES_ID,1): url=url1+str(i) r = requests.get(url,headers=random.choice(header_list)) print(i.text) with open(txt_path_list[ID], "a") as f: f.write(r.text + "\n")
3.2 数据清洗
首先,从网站上扒下来的数据格式为:
标签的文字才是我们想要的内容。使用Notepad++,选择正则表达式查找对应位置,就可以获得恒大楼盘的名字:
# 提取标签中的内容 <p]*>([^<\/]+)<\/p>
下面就是获得的恒大在售楼盘的所有名字,共计
3.3 楼盘地理编码
(1)从百度地图API获取楼盘的地理编码
# 引包 import json from urllib.request import urlopen from urllib.parse import quote import requests # 地理编码 def getlnglat(): for address in open("恒大楼盘名称的文件",encoding='utf-8'): # 打开文件 address = quote(address) # 由于本文地址变量为中文,为防止乱码,先用quote进行编码 uri ="https://api.map.baidu.com/geocoding/v3/?address="+address+"&output=json&ak="+"百度的token"+"&callback=showLocation" r = requests.get(uri, headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36"}) with open("导出百度API的返回结果", "a") as lnglat: lnglat.write(r.text + "\n")
(2)数据清洗
用万能的Notepad++,比1Pandas方便很多。下面是数据结果:
3.4 楼盘位置制图
xls表格导入到arcgis里面制图,不作阐述:
3.5 分省、市、县总结
使用arcgis的空间连接工具,统计每个省份、地级市、县的楼盘数量:
3.总结
3.1 技术总结
(1)使用到的工具有:chrome浏览器、Python、Notepad++、arcgis;
(2)因为恒大的楼盘信息没有反爬机制,能够很容易获取所有楼盘信息;
(3)使用notepad++进行数据清洗,非常高效;
3.2 感想
(省略,专注于技术)
这篇关于恒大在售楼盘位置信息爬取与空间制图的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-30java最新版本是什么,有什么特性?-icode9专业技术文章分享
- 2024-11-30[开源]27.8K star!这款 Postman 替代工具太火了!
- 2024-11-30Gzip 压缩入门教程:轻松掌握文件压缩技巧
- 2024-11-29开源工具的魅力:让文档管理更“聪明”
- 2024-11-29Release-it开发入门教程
- 2024-11-29Rollup 插件入门教程:轻松掌握模块打包
- 2024-11-29从零到一,产品经理如何玩转项目管理和团队协作
- 2024-11-29如何通过精益生产管理工具帮助项目团队实现精准进度控制?
- 2024-11-29低代码应用开发课程:新手入门与基础教程
- 2024-11-29入门指南:全栈低代码开发课程