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

获取全国行政区划数据

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

  • 开始认为在网站上可以直接下载到区划编码的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_encodingresponse.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各表分别存储省市县的区划数据。其他的两个标结构基本相同
    在这里插入图片描述
http://www.xdnf.cn/news/14351.html

相关文章:

  • Sklearn 机器学习 缺失值处理 过滤掉缺失值的行并统计
  • 大模型在垂直领域的应用:金融、医疗、教育等行业的创新案例分析
  • Leetcode 3585. Find Weighted Median Node in Tree
  • day54python打卡
  • 【git】有两个远程仓库时的推送、覆盖、合并问题
  • 数据管道架构设计指南:5大模式与最佳实践
  • Shakker-Labs提出RepText方法,提升FLUX处理文本能力
  • 每天宜搭宜搭小知识—报表组件—日历热力图
  • C++第一阶段——语言基础与核心特性
  • Kafka Connect 存在任意文件读取漏洞(CVE-2025-27817)
  • 【OpenVINO™】使用OpenVIN.CSharp.API在C#平台快速部署PP-OCRv5模型识别文本
  • 【保姆级开发文档】安卓开发四大组件及其生命周期详解
  • 最新版MATLAB R2025a ,支持Windows10/11
  • Laravel 12 更新与之前版本结构变更清单
  • XxlJob热点文章定时计算
  • 001微信小程序入门
  • 向量外积与秩1矩阵的关系
  • Path.mkdir vs os.makedirs:为什么Ruff建议替换?
  • node中Token刷新机制:给你的数字钥匙续期的奇妙之旅
  • RADIUS服务器的核心应用场景与ASP认证服务器的快速对接指南
  • Linux--存储系统探秘:从块设备到inode
  • 基于STM32单片机RLC检测仪
  • TabSyncer:浏览器标签页管理工具
  • 【freertos互斥量补充】递归锁
  • 1.18 进程管理PM2
  • 山东大学项目实训-创新实训-法律文书专家系统-项目报告(六)
  • 【数据结构中的堆】
  • ASR-PRO语音识别可能出现的问题
  • langchain从入门到精通(九)——ChatGPT/Playground手动模拟记忆功能
  • MFE微前端:如何捕捉远程应用的remote.js加载失败的错误?