HTML应用指南:利用GET请求获取全国招商银行网点位置信息
招商银行(China Merchants Bank, CMB)作为中国领先的股份制商业银行,始终坚持“以客户为中心”的服务理念,致力于为个人客户、企业客户及机构客户提供专业、高效、便捷的综合金融服务。依托“轻型银行”战略与“金融科技银行”建设,招商银行持续推进线上线下融合的服务模式,构建起覆盖全国主要城市、辐射重点县域的现代化金融服务网络,形成以总分行统筹管理为基础、营业网点为核心、智能设备与移动端平台为延伸的立体化服务体系。
营业网点作为招商银行线下服务的重要支点,不仅是办理存取款、理财、贷款、跨境金融等核心业务的关键场所,更是传递品牌价值、推广财富管理产品、开展客户陪伴式服务与提供专业金融咨询的综合体验空间。各营业网点遵循统一的服务标准与品牌形象规范,注重服务环境的私密性、舒适性与科技感,广泛部署智能柜员机、VTM远程柜员终端、智能排队系统等数字化设备,积极打造“智慧网点”,持续提升服务效率与客户满意度。
本文将探讨如何通过程序化方式,利用 GET 请求调用公开接口,从招商银行相关服务平台获取营业网点分布数据。通过 Python 的 requests 库发送 HTTP 请求,解析返回的 JSON 结构化数据,提取网点名称、所属城市、行政区划、详细地址、营业时间、服务功能及地理坐标等关键字段,实现对网点信息的自动化采集。该数据可广泛应用于分析招商银行的区域布局策略、渠道覆盖密度、重点经济圈服务渗透率以及城乡金融服务可及性等课题,为金融地理研究、银行网点优化布局、商业选址分析及智慧城市建设提供有力的数据支持。
招商银行网点查询网址:招商银行 -- 网点地图
首先,我们找到门店数据的存储位置,然后看3个关键部分标头、负载、 预览;
标头:通常包括URL的连接,也就是目标资源的位置;
负载:对于GET请求:负载通常包含了传递的参数,有些网页负载可能为空,或者没有负载,因为所有参数都通过URL传递,这里我们可以看到cityname(城市名称),type(查询类型),没有进行加密;
预览:指的是对响应内容的快速查看或摘要显示,可以帮助用户快速了解返回的数据结构或内容片段,我们可以看到数据在list里;
接下来就是数据获取部分,先讲一下方法思路,一共三个步骤;
方法思路
- 找到对应数据存储位置,获取地级行政区表数据;
- 我们通过requests库发送HTTP请求,来遍历全国网点的标签数据;
- 地理编码→地址转经纬度,再通过coord-convert库实现BD09转WGS84;
首先,我们观察到它的查询方式依然是通过不同行政区层级进行网点查询,那我们直接在"Fetch/XHR"先找到对应数据存储位置, 我们可以看到响应请求包含地级行政区、查询类型等对应内容的响应请求,另外,根据上面负载的内容,我们可以知道,数据是直接通过行政区名称进行传递的;
因为网点查询页面的负载包括地级行政区名称,所以我们通过修改行政区名称来进行数据获取,为了方便我们可以建立一个包含地级行政区的字典(因为招商银行不是在所有行政区都有网点,所以以网页提供的行政区为准),通过遍历行政区名称来查询全国数据;
第一步:利用requests库发送HTTP请求获取所有地级行政区的表,并根据标签进行保存,另存为csv;
完整代码#运行环境 Python 3.11
import requests
import csv
from datetime import datetime# 请求数据
response = requests.get("https://map.cmbchina.com/api/map/getProCityInfo",headers={'User-Agent': 'Mozilla/5.0'},timeout=10
)if response.status_code == 200:data = response.json()filename = f"pro_city_info.csv"# 保存为CSVwith open(filename, 'w', encoding='utf-8-sig', newline='') as f:writer = csv.writer(f)writer.writerow(['省份', '城市', '纬度', '经度'])for prov in data['body']['provList']:[writer.writerow([prov['provName'], c['cityName'], c['lat'], c['lng']])for c in prov['cityList']]print(f"数据已保存到 {filename}")
else:print(f"请求失败: {response.status_code}")
数据会以csv表格的形式,保存在运行脚本的目录下,数据标签包括:省份、城市、经纬度;
第二步:利用GET请求获取所有银行网点数据,并根据标签进行保存,另存为csv;
完整代码#运行环境 Python 3.11
import requests
import csv# 读取城市列表
def read_cities_from_csv(filename):cities = []with open(filename, 'r', encoding='utf-8-sig') as f:reader = csv.DictReader(f)for row in reader:city_name = row['城市']if city_name:cities.append(city_name)return cities# 输出文件名固定
output_filename = "cmb_bank.csv"# 打开输出CSV文件并写入表头
with open(output_filename, 'w', encoding='utf-8-sig', newline='') as output_file:writer = csv.writer(output_file)writer.writerow(['城市', 'branchNo', 'lat', 'lng', 'name', 'type'])# 读取城市列表cities = read_cities_from_csv('pro_city_info.csv')# 遍历每个城市for city in cities:url = f"https://map.cmbchina.com/api/map/getCmbData?cityName={city}&type=B"try:response = requests.get(url, headers={'User-Agent': 'Mozilla/5.0'}, timeout=10)if response.status_code == 200:data = response.json()if data['returnCode'] == 'SUC0000':branches = data['body']count = len(branches)# 打印每个城市的返回条数print(f"城市:{city},{count}条")# 写入数据for branch in branches:writer.writerow([city,branch['branchNo'],branch['lat'],branch['lng'],branch['name'],branch['type']])else:print(f"城市:{city},请求失败: {data['errorMsg']}")else:print(f"城市:{city},HTTP错误: {response.status_code}")except Exception as e:print(f"城市:{city},请求时发生错误: {e}")print(f"所有数据已保存到 {output_filename}")
这里有一个tips:1、tpye:B对应的是营业网点,tpye:C对应的是自助银行,tpye:A对应的是自动柜员机",如果需要修改查询类型,可直接修改type;
获取数据标签如下:城市、branchNo(营业厅编号)、lat&lng(地理坐标)、name(营业厅名称)、type(查询类型),其他一些非关键标签,这里省略;
第三步:坐标系转换,由于招商银行网点数据使用的是百度坐标系(BD09),为了在ArcGIS上准确展示而不发生偏移,我们需要将网点的坐标从BD09转换为WGS-84坐标系。我们可以利用coord-convert库中的bd2wgs(lng, lat)函数,也可以用免费这个网站:批量转换工具:地图坐标系批量转换 - 免费在线工具;
对CSV文件中的网点坐标列进行转换,完成坐标转换后,再将数据导入ArcGIS进行可视化;
接下来,我们进行看图说话:
招商银行(CMB)在中国大陆的网点分布呈现出显著的区域不均衡性。东部沿海地区是其网点布局的核心区域,尤其是长三角(上海、江苏、浙江)、珠三角(广东)、京津冀(北京、天津、河北)等经济高度发达地区。这些区域城市化进程快、人口密集、商业活动活跃,对综合性金融服务的需求旺盛,因此招商银行在此类地区实现了高密度覆盖,充分体现了其对重点经济圈的战略聚焦。
相比之下,中部地区如河南、湖北、湖南等地虽有一定数量的网点布局,但整体密度仍低于东部沿海;而西部及东北地区的网点分布则明显稀疏,尤其在新疆、青海、西藏、内蒙古等偏远省份,网点数量极少甚至存在空白区域,这主要受限于当地人口密度低、经济总量较小以及运营成本较高等因素。
在城市层级上,一线城市(北京、上海、广州、深圳)的网点数量最多,几乎覆盖所有城区,展现出招商银行在核心市场的深度渗透与品牌影响力。同时,省会城市及重要经济节点城市,如成都、武汉、杭州、南京等,也是网点集中布局的重点区域,反映出其“以中心城市带动区域发展”的渠道策略,城乡金融服务差距显著。在大城市及其周边卫星城,网点高度密集,形成了高效便捷的“15分钟金融服务圈”,能够全面满足居民和企业的存贷汇、理财、对公等多元需求;而在广大农村及偏远县域,物理网点数量极少,服务主要依赖数字化渠道,凸显出传统银行服务在地理覆盖上的局限性。
从战略角度看,招商银行作为国内零售银行业务的领军者,其网点布局与人口集聚度、消费活力和财富水平高度匹配,充分契合其“轻型银行”和“金融科技银行”的双轮驱动战略。在高密度城市区域,招商银行持续推进智慧网点建设,广泛部署智能柜员机、VTM远程柜员、AI客服等科技设备,提升服务效率,释放人力专注于财富管理等高附加值业务。而在低密度区域,则更多通过手机银行、掌上生活App等线上平台实现服务延伸,实现"线下精耕、线上广覆"的协同发展模式。
文章仅用于分享个人学习成果与个人存档之用,分享知识,如有侵权,请联系作者进行删除。所有信息均基于作者的个人理解和经验,不代表任何官方立场或权威解读。