首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >用 WorkBuddy 批量抓取税法原文,15 部法律一键生成 Word 文档

用 WorkBuddy 批量抓取税法原文,15 部法律一键生成 Word 文档

原创
作者头像
用户12689593
发布2026-08-25 18:53:01
发布2026-08-25 18:53:01
440
举报

关键词:WorkBuddy、Python 自动化、法规抓取、python-docx、国家税务总局政策法规库

一、需求背景

做税务内容/合规工作时,经常需要把现行有效的税法原文整理成一份份可归档、可编辑的 Word 文档。中国现行 18 个税种里,已有 14 部完成了立法(法律),加上《税收征收管理法》,一共 15 份权威文本。手工从网页复制、排版、去目录,既慢又容易出错。

这篇文章分享一个用 WorkBuddy 自动完成的方案:让 assistant 在本地起一个 Python 环境,直接抓取国家税务总局政策法规库(fgk.chinatax.gov.cn)的官方原文,解析结构后批量生成 15 个独立的 .docx 文件,每部法律一个文档、章/节为标题、条文加粗,并标注来源与版本。

二、整体思路

WorkBuddy 真正擅长的是「把多步任务跑通」:它能在本机建 Python 虚拟环境、写脚本、联网抓取、解析 HTML、再调用 python-docx 落盘。关键链路是:

  1. 建环境:在本机 Python 的隔离目录里建 venv,装 requests / beautifulsoup4 / lxml / python-docx
  2. 定源:全部取自国家税务总局政策法规库官方页,URL 形如 fgk.chinatax.gov.cn/zcfgk/c100009/{c编号}/content.html
  3. 摸结构:官方页正文在 div.articlediv.arc_cont,法律标题在 <h3>,条文是独立的 <p>
  4. 解析 + 生成:用 BeautifulSoup 取标题与正文,按「第X章/第X节/第N条」切分后交给 python-docx 写出。
  5. 一键跑:一条命令生成全部 15 个文件。

三、实操步骤

步骤 1:在本机准备 Python 环境

WorkBuddy 自带受管 Python,直接在它的隔离目录里建 venv,不污染本机:

代码语言:bash
复制
# 用 WorkBuddy 自带的 python 建 venv(Windows 路径示例)
C:/Users/你的用户名/.workbuddy/binaries/python/versions/3.13.12/python.exe \
  -m venv C:/Users/你的用户名/.workbuddy/binaries/python/envs/default

# 安装依赖
Scripts/python.exe -m pip install requests beautifulsoup4 lxml python-docx

步骤 2:定位每部法律的官方 URL

法规库正文页的链接是稳定可预测的(同一批 2020-08-11 通过的法律 c 编号相邻)。对缺失的个别法律,用「限定域名检索」拿到权威 URL,避免抓到地方税务子站的镜像副本。

注意版本陷阱:《税收征收管理法》的「最新版本」是 2015 年修正版(现行有效),不要用 2025 年的修订征求意见稿。 《环境保护税法》要用 2025 年第二次修正版 的完整法律文本(c5193032);同站另一个 c 编号只是《修改决定》,不是法律全文。

步骤 3:摸清网页结构

用一段 Python 验证可以直接取到完整未截断的全文:

代码语言:python
复制
import requests
from bs4 import BeautifulSoup

url = "https://fgk.chinatax.gov.cn/zcfgk/c100009/c5193018/content.html"  # 企业所得税法
r = requests.get(url, timeout=20, headers={"User-Agent": "Mozilla/5.0"})
r.encoding = "utf-8"
soup = BeautifulSoup(r.text, "lxml")
title = soup.find("h3").get_text(strip=True)          # 法律名称
arc = soup.select_one("div.article div.arc_cont")     # 正文容器
paras = [p.get_text(" ", strip=True) for p in arc.find_all("p")]
print(title, "条文段落数:", len(paras))

步骤 4:写解析 + 生成脚本

核心是把网页文本还原成 Word 的层级结构。难点有三个(下一节详述),解析逻辑要覆盖它们:

  • 把每个 <p> 按「第X章 / 第X节 / 第N条」正则切分;
  • 章节标题映射为 Word 的 Heading 样式,条文正文加粗;
  • 自动识别并剥掉网页顶部的「目录」重复块。

然后用 python-docx 写出,页脚/文首注明来源 URL 与抓取日期,方便日后复核版本。

步骤 5:一条命令生成全部 15 个文件

代码语言:bash
复制
Scripts/python.exe 税法原文生成脚本.py gen

跑完即得到 15 个独立的 Word 文档,命名如 中华人民共和国企业所得税法.docx

四、三个容易踩的坑(都是实测)

  1. 网页自带「目录」会重复出现在正文里。长法律(如企业所得税法 60 条、增值税法 38 条)正文开头有一块目录,章节标题会和正文开头的标题逐项重复。解法:对连续的章节标题做周期匹配,跳过多余的目录块。
  2. 短法律整段塞进一个 <p>。印花税法、资源税法等会把整部法压在一个 <p> 里,必须按「第N条」在段内再次切分,否则会整段挤成一个段落。
  3. 章名里有装饰性空格。网页正文的章名常插入全角空格(如「第三章 应 纳 税 额」),与目录里的写法不一致,会干扰去重判断,写文件前统一清洗掉。

另外 Windows 上 venv 的可执行文件在 Scripts/python.exe(不是 bin/python),直接写脚本时别搞错路径。

五、成果与版本注意事项

  • 15 份 Word 全部生成,条文数校验通过(企业所得税法 60、增值税法 38、关税法 72、环境保护税法 29、税收征收管理法 94 等),无重复段落。
  • 章/节层级用 Word 标题样式还原,条文号加粗,中文字体设为宋体/黑体,开起来就是规范文档。
  • 脚本留着,日后法规有新修正,重跑 gen 即可更新。

正式引用时,仍以「国家法律法规数据库(flk.npc.gov.cn)」复核为准——本方案抓取的是税务总局法规库的权威文本,适合做工作底稿与归档。

六、小结

这类「从权威网站批量抓取结构化文本 → 落盘成可编辑文档」的任务,用 WorkBuddy 跑非常合适:环境、脚本、抓取、解析、生成全链路都能在本机一次性跑通,省去大量手工复制粘贴。把这套思路套到合同、裁判文书、政策文件的批量归档上,同样适用。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 一、需求背景
  • 二、整体思路
  • 三、实操步骤
    • 步骤 1:在本机准备 Python 环境
    • 步骤 2:定位每部法律的官方 URL
    • 步骤 3:摸清网页结构
    • 步骤 4:写解析 + 生成脚本
    • 步骤 5:一条命令生成全部 15 个文件
  • 四、三个容易踩的坑(都是实测)
  • 五、成果与版本注意事项
  • 六、小结
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档