• 背景:自定义表单要做级联组件。需要配置远程接口获取区划数据。数据需要准备。

  • 开始认为在网站上可以直接下载到区划编码的json格式数据。但是没有找到。很失望。但是找到了能够查询的国家民政局网站,提供了截至到5月份最新的数据。中华人民共和国民政部,进入网站后点击菜单栏民政数据就可以看到。行政区划连接。

  • 行政区划查看
    在这里插入图片描述

在这里插入图片描述

  • 但是连接打开后直接给出的市html页面。需要自己分析。
  • 无耐请教大模型。开始还算顺利,告知提取省市级别的行政区划数据,但是区县级别的就不干了,硕鼠数据2000+条不能整理,直接给出了python脚本让自己爬取解析。
  • 解析用的python代码
import os
import requests
from bs4 import BeautifulSoup

# 方法一:禁用代理
session = requests.Session()
session.trust_env = False  # 禁用环境变量中的代理配置

try:
    response = session.get('https://www.mca.gov.cn/mzsj/xzqh/2025/202401xzqh.html')
    response.encoding = response.apparent_encoding
    response.raise_for_status()
    # print(response.text)
    soup = BeautifulSoup(response.text, 'html.parser')
    # print(soup.select('tr'))
    # 示例:查找所有可能包含区县信息的表格行
    districts = []
    for tr in soup.select('tr'):
        tds = tr.select('td.xl7121822, td.xl7021822')
        # print(f" {len(tds)} ")
        if len(tds) >= 2:
            code = tds[0].text.strip()
            name = tds[1].text.strip()



            print(f" {name} {code}")
            # 判断是否为区县级别(假设代码长度为6且第3-4位非00)
            if len(code) == 6 and code[2:4] != '00' and code[4:6] != '00':
                # 提取父级代码(前4位+00)
                parent_id = code[:4] + '00'
                districts.append((code, name, parent_id))
    #print(districts) 
    # 生成SQL语句
    sql_statements = []
    for code, name, parent_id in districts:
        sql = f"SELECT '{code}', '{name}', '{parent_id}' UNION ALL"
        sql_statements.append(sql)
    
    if sql_statements:
        sql_statements[-1] = sql_statements[-1].rstrip(' UNION ALL')  # 最后一条语句去掉UNION ALL
    
    # 保存到文件
    with open('districts.sql', 'w', encoding='utf-8') as f:
        f.write('\n'.join(sql_statements))
    
    print(f"成功生成 {len(sql_statements)} 条记录到 districts.sql")

except requests.exceptions.RequestException as e:
    print(f"请求出错: {e}")
except Exception as e:
    print(f"其他错误: {e}")

  • 目前准备了3各表分别存储省市县的区划数据。其他的两个标结构基本相同
    在这里插入图片描述
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐