news 2026/4/18 5:26:27

Python 爬虫实战:2025年最新全国行政区划代码抓取

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python 爬虫实战:2025年最新全国行政区划代码抓取

目录

    • 🐍 Python 爬虫实战:2025年最新全国行政区划代码抓取(解决反爬与动态加载)
    • 📅 项目背景
    • 🛠️ 技术栈与环境
    • 💡 核心功能实现
      • 1. 健壮的网络请求层(Session & Retry)
      • 2. 混合解析策略(正则大法好)
      • 3. 反反爬虫策略
    • 📊 数据输出格式
      • 1. `administrative_divisions.csv`
      • 2. `administrative_divisions.json`
    • 🚀 如何运行
      • 第一步:安装依赖
      • 第二步:运行脚本
    • 完整代码
    • 📝 总结

专栏导读
  • 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手
  • 🏳️‍🌈 个人博客主页:请点击——> 个人的博客主页 求收藏
  • 🏳️‍🌈 Github主页:请点击——> Github主页 求Star⭐
  • 🏳️‍🌈 知乎主页:请点击——> 知乎主页 求关注
  • 🏳️‍🌈 CSDN博客主页:请点击——> CSDN的博客主页 求关注
  • 👍 该系列文章专栏:请点击——>Python办公自动化专栏 求订阅
  • 🕷 此外还有爬虫专栏:请点击——>Python爬虫基础专栏 求订阅
  • 📕 此外还有python基础专栏:请点击——>Python基础学习专栏 求订阅
  • 文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏
  • ❤️ 欢迎各位佬关注! ❤️

🐍 Python 爬虫实战:2025年最新全国行政区划代码抓取(解决反爬与动态加载)

摘要:本文详细介绍如何使用 Python 编写一个健壮的爬虫,从目标网站抓取中国最新的省、市、县三级行政区划代码。我们将重点攻克 SSL 验证错误、动态 JS 链接解析以及服务器反爬限制等技术难点,最终输出结构化的 CSV 和 JSON 数据。


📅 项目背景

在数据分析、物流配送、用户注册等场景中,一份最新、准确的**全国行政区划代码(省市区三级联动数据)**是必不可少的基础数据。虽然国家统计局每年会发布相关数据,但通过编程自动获取并整理成易用的格式(如 JSON/CSV)仍然是一个常见的技术需求。

本项目旨在解决以下核心问题:

  1. 数据完整性:覆盖全国所有省份(包括港澳台及新疆兵团等特殊区域)。
  2. 层级关系:精确构建 省 -> 市 -> 县/区 的树状结构。
  3. 技术攻坚:解决目标网站的 SSL 握手失败、动态 JavaScript 链接展开以及访问频率限制问题。

🛠️ 技术栈与环境

  • 语言:Python 3.x
  • 核心库
    • requests:处理 HTTP/HTTPS 请求。
    • re:正则表达式,用于高效解析 HTML 和 JS 代码。
    • csv&json:数据持久化。
    • time&random:模拟人类行为,规避反爬。

💡 核心功能实现

1. 健壮的网络请求层(Session & Retry)

在抓取过程中,我们遇到了SSL: WRONG_VERSION_NUMBER和服务器连接重置等问题。为了提高稳定性,我们没有直接使用requests.get,而是构建了一个带有重试机制的Session

importrequestsfromrequests.adaptersimportHTTPAdapterfromrequests.packages.urllib3.util.retryimportRetry# 配置重试策略session=requests.Session()retries=Retry(total=5,backoff_factor=1,status_forcelist=[500,502,503,504])adapter=HTTPAdapter(max_retries=retries)# 挂载适配器,同时支持 HTTP 和 HTTPSsession.mount('http://',adapter)session.mount('https://',adapter)# 设置通用的 Headers 和 Cookies(模拟浏览器)session.headers.update({"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64)...","Referer":"https://www.suchajun.com/..."})

2. 混合解析策略(正则大法好)

目标网站的页面结构存在两种情况:

  • 标准链接:普通的<a>标签,直接提取href
  • JS 动态链接:部分省份(如辽宁、甘肃)的下级城市通过javascript:void(0)触发,数据隐藏在data-code属性中。

我们需要同时处理这两种情况:

# 模式1:标准链接匹配pattern_level2_link=r'<div><a[^>]+href="([^"]+)"[^>]*>([^<]+)</a></div>\s*<div>(\d+)</div>'# 模式2:JS 动态链接匹配(关键!)# 提取>=r'<div>.*<a>([^<]+)</a></div>'# 逻辑判断ifmatches_level2_link:# 处理标准链接...elifmatches_level2_js:# 处理 JS 链接,手动构造 URL# link = f"{base_url}/richang/xingzhengquhuadaima/{code}"

3. 反反爬虫策略

为了避免被服务器识别为机器人并封禁 IP,我们采取了“慢即是快”的策略:

  1. 随机延迟:每次请求前随机休眠3.06.0秒。
  2. 验证页面检测:如果被重定向到验证码页面,脚本会检测并报警(虽然通过增加延迟已基本规避)。
  3. 数据清洗:对提取的链接进行strip()rstrip(':')处理,防止畸形 URL 导致请求失败。

📊 数据输出格式

脚本运行完成后,会生成两个文件:

1.administrative_divisions.csv

适合导入数据库或 Excel 分析,包含父子级联关系。

LevelNameCodeLinkParent Code
1辽宁省210000…/210000
2沈阳市210100…/210100210000
3和平区210102…/210102210100

2.administrative_divisions.json

树状结构,适合前端组件(如级联选择器 Cascader)直接使用。

[{"name":"辽宁省","code":"210000","level":1,"children":[{"name":"沈阳市","code":"210100",
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 15:31:43

IWeakEventListener详细解释

一、IWeakEventListener 核心定义 IWeakEventListener 是 WPF 框架中弱事件模式&#xff08;Weak Event Pattern&#xff09; 的核心接口&#xff0c;用于实现弱引用事件监听。其核心目的是解决普通事件订阅导致的内存泄漏问题——让事件订阅者&#xff08;Listener&#xff09…

作者头像 李华
网站建设 2026/4/17 13:22:29

智能制造的分布式认知系统要素分析

一、为什么“智能制造系统”可以被视为一种认知系统&#xff1f;如果我们抽象掉“机器”“产线”“软件系统”的工程表象&#xff0c;而从功能与能力层面来看&#xff0c;现代智能制造系统正在同时具备以下特征&#xff1a;人类认知能力智能制造系统对应能力感知&#xff08;Pe…

作者头像 李华
网站建设 2026/4/18 5:13:18

在线招生宣传视频制作:内容优化与转化提升技巧

内容优化&#xff1a;用用户视角重构视频叙事1. 痛点挖掘&#xff1a;从“机构想讲”到“用户想听”教育产品的核心是解决需求&#xff0c;招生视频的第一步是站在目标用户——家长与学生的立场&#xff0c;挖掘真实未被满足的痛点。对于K12家长&#xff0c;最迫切的需求是“提…

作者头像 李华
网站建设 2026/4/17 20:06:07

6、Web应用程序安全漏洞检测与分析

Web应用程序安全漏洞检测与分析 在当今数字化的时代,网络安全至关重要。Web应用程序面临着各种各样的安全威胁,如跨站脚本攻击(XSS)、SQL注入、会话劫持等。本文将详细介绍如何使用一些工具和方法来检测这些常见的安全漏洞。 1. 使用Burp Suite查看和修改请求 Burp Suite…

作者头像 李华
网站建设 2026/4/10 18:32:18

AI开发全链路工具深度解析:从智能编码到模型部署

引言&#xff1a;AI开发范式变革人工智能开发正经历着从“手工作坊”到“工业化生产”的深刻变革。这一转变的核心驱动力是一系列专业化AI工具的出现与成熟。智能编码工具如GitHub Copilot改变了开发者与代码的交互方式&#xff0c;数据标注工具将繁琐的标注工作系统化&#xf…

作者头像 李华
网站建设 2026/4/16 17:20:01

社会科学选拔测试

社会科学选拔测试 多选题 二、多项选择题&#xff1a;17&#xff5e;33小题&#xff0c;每小题2分&#xff0c;共34分。 下列每题给出的四个选项中&#xff0c;至少有两个选项是符合题目要求的。多选题的期望值是多少&#xff1f; 假设&#xff1a; 全选对的概率是30%&#xff…

作者头像 李华