HTML应用指南:利用POST请求获取全国小菜园门店位置信息
小菜园作为一家以徽菜为主的快餐品牌,自2013年成立以来,凭借其独特的烹饪理念和精致的东方口味菜品,在中国市场上迅速崛起。该品牌强调少油少盐、减少调味品使用,旨在传承并发扬徽州风味的独特魅力。这种健康且不失美味的烹饪方式不仅保留了传统徽菜的精髓,还满足了现代消费者对健康饮食的需求。通过提供温馨的服务体验,小菜园赢得了众多消费者的喜爱和支持。截至2025年,小菜园已经在中国14个省的148个城市或县开设了超过680家直营门店,展示了其强大的市场适应能力和品牌影响力。
本文将探讨如何利用GET请求从官方网站上获取小菜园的门店分布信息,并展示使用Python的requests库发送GET请求的方法,以提取详细的门店位置信息。这些信息覆盖全国范围内的所有小菜园店铺,并通过解析JSON格式的数据或HTML页面来处理响应数据。这种做法有助于我们更深入地了解小菜园的市场策略及其在不同地区的消费趋势。
小菜园官方地址:全国门店-小菜园-母亲的味道
我们第一步先找到门店数据的存储位置,然后看3个关键部分标头、负载、 预览;
标头:通常包括URL的连接,也就是目标资源的位置;
负载:对于POST请求:负载通常包含了传递的参数,这里我们可以看到它的传参包括,省份、地级市,还是明文,没有进行加密;
预览:指的是对响应内容的快速查看或摘要显示,可以帮助用户快速了解返回的数据结构或内容片段;
接下来就是数据获取部分,先讲一下方法思路,一共三个步骤;
方法思路
- 找到对应数据存储位置,获取所有店铺列表的相关标签数据;
- 直接访问url,即可遍历全国门店数据;
- 可视化,数据导入ArcGIS进行可视化;
第一步:我们先找到对应数据存储位置,获取所有店铺列表,经过测试,直接访问url即可获取全国店铺信息,不需要通过遍历关键词来查询全国数据;
第二步:利用POST请求遍历获取所有店铺列表,并根据标签进行保存,另存为csv;
完整代码#运行环境 Python 3.11
import requests
import json
import pandas as pd
from datetime import datetime
import timedef fetch_xiaocaiyuan_stores():"""获取小菜园店铺信息"""try:# 请求URLurl = "https://www.xiaocaiyuan.com/index.php?p=/ExtLabel/getAreaList"# 请求参数params = {'scode': '14' # 只保留scode参数}# 设置请求头headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36','Accept': 'application/json, text/javascript, */*; q=0.01','Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8','Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8','X-Requested-With': 'XMLHttpRequest','Origin': 'https://www.xiaocaiyuan.com','Referer': 'https://www.xiaocaiyuan.com/'}# 发送POST请求response = requests.post(url, params=params, headers=headers)response.raise_for_status()# 打印原始响应内容print("原始响应内容:")print(response.text)# 解析JSON响应data = response.json()# 打印格式化的JSON响应print("\n格式化的JSON响应:")print(json.dumps(data, ensure_ascii=False, indent=2))# 检查响应状态if not data or 'data' not in data:print("获取数据失败")return None# 提取店铺列表stores = data['data']# 创建存储数据的列表store_list = []# 处理每个店铺的数据for store in stores:store_info = {'店铺名称': store.get('title', ''),'详细地址': store.get('ext_address', ''),'所在城市': store.get('ext_city', ''),'高德坐标': store.get('ext_gaode', ''),'经纬度': store.get('ext_lnglat', ''),'联系电话': store.get('ext_tel', ''),'店铺图标': store.get('ico', '')}store_list.append(store_info)# 创建DataFramedf = pd.DataFrame(store_list)# 生成输出文件名(包含时间戳)timestamp = datetime.now().strftime('%Y%m%d_%H%M%S')output_file = f'xiaocaiyuan_stores_all_{timestamp}.csv'# 保存为CSV文件df.to_csv(output_file, index=False, encoding='utf-8-sig')print(f"\n数据获取完成!")print(f"总共获取到 {len(store_list)} 家店铺信息")print(f"数据已保存到:{output_file}")return dfexcept Exception as e:print(f"获取数据时出错: {str(e)}")return Noneif __name__ == "__main__":fetch_xiaocaiyuan_stores()
获取数据标签如下, ext_address(详细地址)、ext_city(城市)、ext_gaode(高德坐标系)、ext_lnglat(84坐标系)、ext_tel(电话)、ico(店铺图标)、title(店铺名称),其他一些非关键标签,这里省略;
第三步:坐可视化,因为数据标签本身包含wgs84坐标系,我们可以直接导入ArcGIS进行可视化;
接下来,我们进行看图说话:
小菜园门店的分布特征显示出显著的地域性和经济性特点。小菜园的门店分布主要集中在华东、华北、华中和华南地区。具体而言,在华东地区,江苏省的南京、苏州、无锡等地,浙江省的杭州、宁波等城市,以及安徽省的合肥及其周边地区,均设有较多的小菜园门店。在华北地区,北京市作为首都,拥有显著数量的门店,天津市和河北省的石家庄、保定等地也有密集分布。此外,在华中地区,河南省的郑州市及周边地区,湖北省的武汉市及其周边地区,也都是小菜园重点布局的城市。在华南地区,广东省的广州、深圳,福建省的福州、厦门等地同样设有门店;
- 高密度区域:特别值得注意的是,华东地区的江苏、浙江和安徽是小菜园门店分布最为密集的区域,这可能与这些省份的人口密度、经济发展水平以及对徽菜的接受度较高有关。
- 经济与文化因素:这些地区的人口基数大、消费能力强,并且对中式快餐尤其是徽菜有着较高的认可度,这为小菜园提供了良好的发展土壤。
- 一线与二线城市覆盖:北京、上海、广州、深圳等一线城市以及南京、杭州、武汉、成都等二线城市,也是小菜园的重要布局点,体现了其在全国范围内的广泛影响力。
- 核心分布区:中东部城市是小菜园的分布核心,特别是在江苏、浙江、安徽、河南、湖北等省份,小菜园在这里的门店数量最多,因为其菜品风味和饮食习惯,西部地区并没有进行市场拓展
文章仅用于分享个人学习成果与个人存档之用,分享知识,如有侵权,请联系作者进行删除。所有信息均基于作者的个人理解和经验,不代表任何官方立场或权威解读。