当前位置: 首页 > news >正文

HTML应用指南:利用POST请求获取全国圆通快递服务网点位置信息

圆通快递作为国内物流行业的领军企业,自2000年成立以来,始终秉持 “客户要求,圆通使命” 的服务宗旨,致力于为客户提供高效、优质的物流服务。凭借其庞大的物流网络、先进的信息技术以及卓越的运营管理,圆通快递在激烈的市场竞争中脱颖而出,业务范围覆盖全国乃至全球150多个国家和地区。

在数字化时代,数据已成为企业发展的重要资产。通过获取和分析圆通快递在全国范围内的服务网点分布信息,不仅可以深入了解其市场布局策略,还能为用户提供更加便捷的服务。本文将详细探讨如何利用 POST 请求从圆通快递官方网站或其公开 API 接口获取这些关键数据,并展示使用 Python 的 requests 库发送 POST 请求的具体方法,从而提取出详细的门店地址、营业时间、联系方式等信息。这些数据涵盖了圆通快递在全国 300 多个城市的服务网点,通过解析 API 返回的 JSON 格式响应数据进行处理,最终整理出结构化的服务网点列表。

通过对这些服务网点数据的深入分析,我们可以全面掌握圆通快递在国内市场的布局特点与发展趋势。例如,通过分析各城市的网点密度、选址特征以及周边消费环境,可以精准洞察不同地区的物流需求差异,为圆通未来的服务优化、新网点开设规划以及市场拓展策略提供有力的数据支持与决策依据。同时,用户也可以借助这些数据,方便快捷地查询到最近的圆通快递网点,实现快速寄件或预约上门取件服务,极大地提升了用户体验。

圆通快递网点位置查询:圆通速递

我们第一步先找到服务网点数据的存储位置,然后看3个关键部分标头、负载、 预览;

标头:通常包括URL的连接,也就是目标资源的位置;

负载:对于POST请求:负载通常包含了传递的参数,这里我们可以看到它的传参包括各级行政区名称,是明文传输;

预览:指的是对响应内容的快速查看或摘要显示,可以帮助用户快速了解返回的数据结构或内容片段;

接下来就是数据获取部分,先讲一下方法思路,一共三个步骤;

方法思路

  1. 找到对应行政区数据存储位置,生成一个行政区对应关系字典;
  2. 我们通过改变查询负载的内容(各级行政区名称),来遍历全国服务网点数据,获取所有服务网点的相关标签数据;
  3. 坐标转换,通过coord-convert库实现BD-09转WGS84;

第一步:通过页面测试发现,圆通服务网点查询页面采用的策略是,通过三级行政区明文这样的结构数据,进行查询的;

接下来,我们可以通过形成三级行政区字典进行遍历全国服务网点数据字典,后续进行遍历字典,例:

cities_counties = {"杭州市": ["上城区", "下城区", "江干区", "拱墅区", "萧山区", "余杭区", "桐庐县", "淳安县",  "建德市", "富阳市旧", "临安市旧", "西湖区", "滨江区", "富阳区", "临安区", "钱塘区", "临平区"],"宁波市": ["海曙区", "江东区", "江北区", "北仑区", "镇海区", "鄞州区", "象山县", "宁海县", "余姚市", "慈溪市", "奉化市", "奉化区"],# 添加更多城市及其区(县)# 如果像北京,上海这种直辖市,可以写成 "北京市": ["东城区", "西城区", "崇文区", "宣武区", "朝阳区", "丰台区", "石景山区", "海淀区", "门头沟区", "房山区", "通州区"]这种格式。
}

第二步:我们先找到对应数据存储位置,根据你检索城市的手动获取所有行政区区划名称列表或者通过脚本直接读这个json文件来进行全国数据的遍历:全国行政区区划市、区(县)三级对应关系json(2025年2月)资源-CSDN文库,进行组合查询,后续通过遍历行政区编码名称来查询全国数据,这里我们以浙江省为例;

tips:如果需要修改查询城市,只需要修改provinceId和对应的二级、三级行政区列表即可;

完整代码#运行环境 Python 3.11

import requests
import json
import pandas as pd# 请求 URL 和头
url = "https://gis.yto.net.cn/addressCenterSortManager/addrmdmorg/searchMdmOrg"
headers = {"Content-Type": "application/json"}# 河南省的市和区(县)列表 - 需要根据实际情况填充
cities_counties = {"杭州市": ["上城区", "下城区", "江干区", "拱墅区", "萧山区", "余杭区", "桐庐县", "淳安县",  "建德市", "富阳市旧", "临安市旧", "西湖区", "滨江区", "富阳区", "临安区", "钱塘区", "临平区"],"宁波市": ["海曙区", "江东区", "江北区", "北仑区", "镇海区", "鄞州区", "象山县", "宁海县", "余姚市", "慈溪市", "奉化市", "奉化区"],"温州市": ["鹿城区", "龙湾区", "瓯海区", "洞头县旧", "永嘉县", "平阳县", "苍南县", "文成县", "泰顺县", "瑞安市", "乐清市", "洞头区", "龙港市"],"嘉兴市": ["南湖区", "秀洲区", "嘉善县", "海盐县", "海宁市", "平湖市", "桐乡市"],"湖州市": ["吴兴区", "南浔区", "德清县", "长兴县", "安吉县"],"绍兴市": ["越城区", "绍兴县旧", "新昌县", "诸暨市", "上虞市", "嵊州市", "柯桥区", "上虞区"],"金华市": ["婺城区", "金东区", "武义县", "浦江县", "磐安县", "兰溪市", "义乌市", "东阳市", "永康市"],"衢州市": ["柯城区", "衢江区", "常山县", "开化县", "龙游县", "江山市"],"舟山市": ["定海区", "普陀区", "岱山县", "嵊泗县"],"台州市": ["椒江区", "黄岩区", "路桥区", "玉环县旧", "三门县", "天台县", "仙居县", "温岭市", "临海市", "玉环市"],"丽水市": ["莲都区", "青田县", "缙云县", "遂昌县", "松阳县", "云和县", "庆元县", "景宁畲族自治县", "龙泉市"],# 添加更多城市及其区(县)# 如果像北京,上海这种直辖市,可以写成 "北京市": ["东城区", "西城区", "崇文区", "宣武区", "朝阳区", "丰台区", "石景山区", "海淀区", "门头沟区", "房山区", "通州区"]这种格式。
}all_data = []  # 存储所有区域的数据for city, counties in cities_counties.items():for county in counties:print(f"正在处理: {city}, {county}")# 请求负载payload = {"province": "浙江省","city": city,"county": county,"address": ""}try:response = requests.post(url, headers=headers, data=json.dumps(payload))response.raise_for_status()print("请求成功!")data = response.json()if data.get("success") and isinstance(data.get("data"), list):orgs = data["data"]# 提取 lng 和 lat 到顶层字段for org in orgs:loc = org.get("location", {})org["lng"] = loc.get("lng")org["lat"] = loc.get("lat")all_data.extend(orgs)else:print(f"API 返回无有效数据。响应内容: {data}")except requests.exceptions.RequestException as e:print(f"网络请求错误: {e}")if hasattr(e, 'response') and e.response is not None:print(f"状态码: {e.response.status_code}, 响应内容: {e.response.text}")except json.JSONDecodeError:print("无法解析 JSON 数据。响应内容:", response.text)if all_data:df = pd.DataFrame(all_data)csv_filename = "yuantong_service_network_data.csv"df.to_csv(csv_filename, index=False, encoding='utf-8-sig')print(f"所有数据已成功保存到 {csv_filename}")
else:print("没有获取到任何有效数据。")

获取数据标签如下,orgAddress(地址)、orgName(服务网点名)、lng,lat(坐标)、takephone(电话)、normalDispatchIn(调度范围),其他一些非关键标签,这里省略;

第三步:坐标系转换,由于圆通快递服务网点数据使用的是百度坐标系(BD-09),为了在ArcGIS上准确展示而不发生偏移,我们需要将服务网点的坐标从BD-09转换为WGS-84坐标系。我们可以利用coord-convert库中的bd2wgs(lng, lat)函数,也可以用免费这个网站:批量转换工具:地图坐标系批量转换 - 免费在线工具;
对CSV文件中的服务网点坐标列进行转换,完成坐标转换后,再将数据导入ArcGIS进行可视化;

接下来,我们进行看图说话:

浙江省圆通快递的服务网点分布呈现出覆盖全省、重点突出的特征。在高密度区域,如宁波市、杭州市、温州市等大城市及其周边地区,网点数量密集,主要服务于经济活跃区和人口密集区,例如杭州湾新区、温州都市圈,体现了对快递需求量大的区域的优先布局。

沿海地区,如舟山、台州等城市,网点数量同样较多,这与海洋经济、港口物流及旅游产业密切相关。这些区域的商业流通频繁,快递服务需求集中,进一步凸显了圆通对沿海经济带的重视。

对于内陆地区,虽然网点密度低于沿海和大城市,但通过干线运输与支线配送结合的模式,圆通仍实现了对乡镇和村庄的广泛覆盖,保障了全省范围内的基础服务。这一策略有效平衡了城市核心区与偏远地区的物流需求。

此外,圆通的网点布局还充分考虑了交通干线附近的便利性,多数网点位于主要公路、高速公路或交通枢纽附近,便于货物集散和配送效率提升。这种布局不仅优化了运输路径,也进一步缩短了配送时效。

总体来看,圆通在浙江省构建了城市核心区高密度覆盖、沿海与内陆均衡发展、交通节点高效衔接的三级服务体系,精准匹配了区域经济特征和物流需求,展现了其在综合物流网络布局上的战略优势。

文章仅用于分享个人学习成果与个人存档之用,分享知识,如有侵权,请联系作者进行删除。所有信息均基于作者的个人理解和经验,不代表任何官方立场或权威解读。

相关文章:

  • 【时时三省】(C语言基础)使用字符串处理函数2
  • 车用CAN接口芯片:汽车神经系统的沉默构建者
  • 【Python 算法零基础 2.模拟 ④ 基于矩阵】
  • 鸿蒙OSUniApp 实现图片上传与压缩功能#三方框架 #Uniapp
  • c++和c的不同
  • Void: Cursor 的开源平替
  • Android 中 图片加载库 Glide 简介
  • 【Oracle专栏】扩容导致数据文件 dbf 丢失,实操
  • React 第四十节 React Router 中 useBeforeUnload的使用详细解析及案例说明
  • LeRobot 框架的核心架构概念和组件(中)
  • R语言机器学习算法实战系列(二十五)随机森林算法多标签分组分类器及模型可解释性
  • 机器视觉助力轨道缺陷检测
  • AR禁毒:科技赋能,筑牢防毒新防线
  • 【计算机视觉】OpenCV实战项目:GraspPicture 项目深度解析:基于图像分割的抓取点检测系统
  • 掌握Docker Commit:轻松创建自定义镜像
  • 双目云台摄像机:双摄安防功能全方位
  • 基于运动补偿的前景检测算法
  • [20250514] 脑机接口行业调研报告(2024年最新版)
  • Vue.js---嵌套的effect与effect栈
  • 《数据库原理》部分习题解析1
  • 广东省原省长卢瑞华逝世,享年88岁
  • 国务院关税税则委:调整对原产于美国的进口商品加征关税措施
  • 在笔墨金石间,看胡问遂与梅舒适的艺术对话
  • 优化营商环境,服务上海“五个中心”建设,北外滩有何举措?
  • 男子退机票被收票价90%的手续费,律师:虽然合规,但显失公平
  • 男子退机票被收90%的手续费,律师:虽然合规,但显失公平