HTML应用指南:利用GET请求获取全国大疆授权体验门店位置信息
大疆(DJI)作为全球领先的智能影像与无人系统科技企业,始终秉持“激发创造力,拓展人类视野”(Ignite Creativity, Expand Vision)的品牌使命,致力于为专业用户与大众消费者提供前沿的航拍设备、智能影像解决方案与沉浸式科技体验。在中国市场,大疆依托“以用户为中心的全场景服务生态”,持续推进“大疆授权体验店网络升级战略”,构建覆盖全国一二线核心城市、辐射三四线潜力市场的高品质授权零售与服务网络,形成以“城市旗舰店、标准体验店、校园合作店、快修便捷站”多层级协同的服务矩阵。
授权体验店是获取大疆产品展示、销售支持与技术服务信息的关键实体,涵盖新品体验、飞行演示、设备销售、售后维修、固件升级、配件供应及用户培训等核心业务功能。在数据采集与渠道建模场景中,每家门店可抽象为一个具备多维属性的空间节点,其结构化数据字段通常包括:精确地理坐标、省市区三级行政区划、详细地址、联系电话、营业时间、是否支持无人机现场试飞等。此类数据不仅可用于构建全国范围的渠道热力图与服务覆盖模型,还可结合高校分布、文旅景区、消费电子商圈、竞品门店等外部数据集,支撑选址优化、营销资源调度、区域市场饱和度分析等商业智能决策。
本文将系统探讨如何通过程序化数据采集技术,利用标准 HTTP GET 请求,调用大疆中国官方或其授权合作服务平台所提供的公开数据接口,实现对全国范围内大疆授权体验店信息的自动化、规模化采集。借助 Python 生态中成熟稳定的 requests 库,我们可高效发起网络请求,精准捕获接口返回的结构化 JSON 数据,并从中提取关键业务字段,包括但不限于:门店全称、所属省/市/区县三级行政区划、详细地址、营业时间、高精度地理坐标、官方服务热线、是否支持无人机现场试飞是否支持以旧换新、是否支持维修。这一过程不仅是一次高效的数据抓取,更是对大疆中国庞大线下体验与服务网络的一次数字化测绘与空间建模,通过对采集数据的清洗、去重、地理编码、空间关联与可视化分析,我们得以构建一张动态、可交互、可深度挖掘的大疆授权体验店地理信息图谱。
大疆授权体验门店查询地址:寻找适合您的购买渠道- DJI 大疆创新
首先,我们找到门店数据的存储位置,然后看3个关键部分标头、负载、 预览;
标头:通常包括URL的连接,也就是目标资源的位置;
负载:对于GET请求:负载通常包含了传递的参数,有些网页负载可能为空,或者没有负载,因为所有参数都通过URL传递,这里我们可以看到页码和当前查询位置经纬度,等一些标签,没有进行加密,但是state_eq这个用了URL 编码,但是这个一般来说相当于容易解码,网上有很多的解码手册;
预览:指的是对响应内容的快速查看或摘要显示,可以帮助用户快速了解返回的数据结构或内容片段,我们可以看到数据在data里;
接下来就是数据获取部分,先讲一下方法思路,一共三个步骤;
方法思路
- 找到对应门店数据存储位置,利用get请求获取所有门店数据;
- 选取部分关键标签数据,另存为csv;
- 坐标转换,通过coord-convert库实现GCJ-02转WGS84;
首先,我们观察到它的查询方式依然是通过不同省级行政区层级进行门店查询,那我们直接在"Fetch/XHR"先找到对应数据存储位置, 我们可以看到响应请求包括行政区编码名称、当前查询坐标等对应内容的响应请求,另外,根据上面负载的内容,我们可以知道,数据是直接通过省级行政区名称进行传递的;
经过测试发现,我们只要选择到省级行政区,就会加载全部的门店数据,那么我们直接修改负载中的行政区名称,即可遍历全国大疆授权体验门店数据;
这里我们直接在响应部分检索任意一个省份,即可知道数据的位置,那我们直接就把对应的34个省市自治区,写到脚本进行遍历,也不多,省得再写一个脚本获取34个省市自治区的名单了;
第一步:利用requests库发送HTTP请求遍历34个省市自治区并获取所有大疆授权体验门店数据,并根据标签进行保存,另存为csv;
完整代码#运行环境 Python 3.11
import requests
import csv
import time# 全国 34 个省级行政区
regions = ["上海市", "云南省", "内蒙古自治区", "北京市", "吉林省", "四川省", "天津市","宁夏回族自治区", "安徽省", "山东省", "山西省", "广东省", "广西壮族自治区","新疆维吾尔自治区", "江苏省", "江西省", "河北省", "河南省", "浙江省","海南省", "湖北省", "湖南省", "甘肃省", "福建省", "西藏自治区", "贵州省","辽宁省", "重庆市", "陕西省", "青海省", "黑龙江省"
]url = "https://www-api.dji.com/cn/api/where-to-buy/partners"
base_params = {'baidu_lat': 31.099980635254585,'baidu_lon': 121.51550519970532,'category': 'Offline_store','region_code_eq': 'CN','per_page': 50 # 每页最多50条
}all_stores = []
total_count = 0for region in regions:print(f"\n正在采集【{region}】...")# 请求第1页,获取总页数params = {**base_params, 'state_eq': region, 'page': 1}try:resp = requests.get(url, params=params, timeout=10)if resp.status_code != 200:print(f"请求失败(状态码 {resp.status_code}),跳过")continuedata = resp.json()if not data.get('success'):print("API 返回错误,跳过")continueexcept Exception as e:print(f"请求异常:{e},跳过")continuetotal_pages = data['data']['total_pages']if total_pages == 0:print(f" ➖ 无门店数据")continueregion_stores = []for page in range(1, total_pages + 1):print(f" 第 {page}/{total_pages} 页...", end='\r')try:p = {**base_params, 'state_eq': region, 'page': page}res = requests.get(url, params=p, timeout=10)stores = res.json()['data']['partners']for s in stores:region_stores.append({'名称': s['name'],'省份': s['state'],'城市': s['city'],'区县': s['district'],'详细地址': s['address'],'电话': s['contact_number'],'营业时间': s['business_hour'],'支持试飞': '是' if s['has_test_flight'] else '否','支持以旧换新': '是' if s['has_trade_in'] else '否','支持维修': '是' if s['has_repair'] else '否','baidu_lat': s['baidu_lat'],'baidu_lon': s['baidu_lon']})time.sleep(0.2) # 礼貌性延迟,避免触发风控except Exception as e:print(f"\n第 {page} 页出错:{e}")continueprint(f"\n获取 {len(region_stores)} 家门店")all_stores.extend(region_stores)total_count += len(region_stores)# 保存到 CSV
if all_stores:filename = 'dji_china_stores.csv'with open(filename, 'w', encoding='utf-8-sig', newline='') as f:writer = csv.DictWriter(f, fieldnames=all_stores[0].keys())writer.writeheader()writer.writerows(all_stores)print(f"\n全国共采集 {total_count} 家门店,已保存至:{filename}")
else:print("\n未采集到任何门店数据")
获取数据标签如下:state(省份)、city(城市)、district(区县)、name(名称)、address(详细地址)、contact_number(电话)、business_hour(营业时间)、has_test_flight(是否支持试飞)、has_trade_in(是否支持以旧换新)、has_repair(是否支持维修)、baidu_lat&baidu_lon(地理坐标),其他一些非关键标签,这里省略;
第二步:坐标系转换,由于大疆授权体验门店数据使用的是百度坐标系(BD-09),为了在ArcGIS上准确展示而不发生偏移,我们需要将门店的坐标从BD-09转换为WGS-84坐标系。我们可以利用coord-convert库中的bd2wgs(lng, lat)函数,也可以用免费这个网站:批量转换工具:地图坐标系批量转换 - 免费在线工具;
对CSV文件中的门店坐标列进行转换,完成坐标转换后,再将数据导入ArcGIS进行可视化;
接下来,我们进行看图说话:
中国 DJI 线下门店的分布呈现出极为鲜明的区域不均衡特征,整体格局可概括为“东密西疏、南多北少”。门店高度集中于东部沿海三大经济圈——长三角、珠三角和京津冀,其中上海、深圳、北京作为核心城市,门店密度极高,周边如杭州、苏州、广州、天津等地也形成密集网络。这些区域经济发达、人口密集、消费能力强,且对航拍、科技产品接受度高,构成了 DJI 最核心的市场腹地。
在中西部地区,门店布局明显稀疏,但呈现出以省会城市为区域枢纽的集聚模式。成都、重庆、武汉、西安、郑州、长沙等中心城市拥有相对较多的门店,承担着辐射全省乃至周边省份的功能。然而,除省会外,绝大多数地级市和县域几乎无门店覆盖,反映出 DJI 在下沉市场的渗透仍处于初级阶段。值得注意的是,部分旅游城市如三亚、桂林、大理等地虽非经济强市,但因航拍需求旺盛,也设有体验型门店,体现出场景驱动的布局逻辑。
相比之下,西部边疆和东北地区门店覆盖极为薄弱。新疆仅乌鲁木齐、西藏仅拉萨设有零星门店,青海、宁夏、甘肃等地基本只在省会保留门店;东北三省虽有沈阳、哈尔滨、长春等城市设点,但密度远低于南方。这种分布既受制于人口规模、消费能力,也与物流成本、售后支持难度密切相关。总体来看,DJI 的渠道策略明显倾向于高回报、高效率的核心城市群,对低密度区域采取保守覆盖策略。
文章仅用于分享个人学习成果与个人存档之用,分享知识,如有侵权,请联系作者进行删除。所有信息均基于作者的个人理解和经验,不代表任何官方立场或权威解读。