首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >补全18税种版图:用WorkBuddy把4部暂行条例与2025年新政并入税法知识库

补全18税种版图:用WorkBuddy把4部暂行条例与2025年新政并入税法知识库

原创
作者头像
用户12689593
发布2026-09-03 14:19:42
发布2026-09-03 14:19:42
130
举报

补全 18 税种版图:用 WorkBuddy 把 4 部暂行条例与 2025 年新政并入税法知识库

关键词:WorkBuddy、税法、暂行条例、国家税务总局、法规抓取、单文件 HTML、知识库维护

上篇我用 WorkBuddy 把 15 部已立法税法 + 2026 年全部公告解读整合成了可搜索的 中国税法知识库.html。但中国的 18 个税种里,还有 4 个至今没有立法、只以「暂行条例」形式存在——消费税、房产税、城镇土地使用税、土地增值税;而且 2025 年成文的公告与解读也还没并进库里。

这篇就讲我怎么用同一套脚本,把这两块补进去,让知识库从「15 部 + 2026」升级到 「19 部 + 2025–2026」。全程复用上篇的抓取与生成逻辑,只改了数据源和几处合并代码,属于「知识库维护」的标准动作。


一、最终效果

重新生成后的 中国税法知识库.html(约 1.45 MB):

模块

内容

19 部税法全文

原 15 部 + 新补 4 部暂行条例:消费税暂行条例 17 条、房产税暂行条例 11 条、城镇土地使用税暂行条例 14 条、土地增值税暂行条例 15 条

2025–2026 年公告

共 128 份(2026 年 72 份 + 2025 年 56 份),均带正文可展开

2025–2026 年解读

共 187 篇(2026 年 78 篇 + 2025 年 109 篇,含文字与图解)

功能

全文搜索、侧边栏导航、主题筛选、一键复制——与上篇完全一致

4 部暂行条例以「行政法规」层级与 15 部法律并列展示,并标注了版本沿革,方便对照「已立法 vs 暂行条例」的差异。


二、两个关键差异点(先搞清楚再动手)

差异 1:暂行条例在「行政法规」库,不在「法律」库

上篇 15 部法都在 c100009(法律)栏目。暂行条例属于行政法规,在 c100010 栏目:

代码语言:http
复制
# 暂行条例内容页(消费税为例)
https://fgk.chinatax.gov.cn/zcfgk/c100010/c5194422/content.html
#                                   ^^^^^^^ 注意这里是 c100010

幸运的是,两栏目的正文结构完全一致(div.articlediv.zs 沿革 + div.arc_cont 逐条 <p>,标题在 <h3>)。所以解析逻辑可以 100% 复用,只要把 BASEc100009 换成 c100010

差异 2:2025 年政策解读的抓取有「隐藏坑」

上篇的 fetch_interpsearch5/search/s 接口的 cwrqStart/cwrqEnd 日期过滤来取某一年。但实测发现:这个日期过滤参数根本不生效——接口永远按时间倒序返回最新的 10 条(2026 年在最前),翻页才能见到更早的年份。

代码语言:http
复制
# 带 2025 日期过滤,结果照样返回 2026 的最新 10 条 —— 过滤被无视
GET https://www.chinatax.gov.cn/search5/search/s
  ?siteCode=bm29000002&column=政策解读&xxgkResolveType=文字
  &cwrqStart=2025-01-01&cwrqEnd=2025-12-31
# 返回:2026 年解读 10 条(过滤无效!)

这意味着:2025 年的解读排在 2026 年之后(按时间倒序),必须用「翻页 + 客户端按年份筛选」,而不能依赖接口的日期参数。


三、操作步骤(WorkBuddy 可直接照跑)

步骤 1:复用解析逻辑,抓 4 部暂行条例

直接 import 上篇的 税法原文生成脚本.py只改 BASE,再调用同一个 parse_law,把返回的 (kind, content) 列表转成 HTML 生成器要的 blocks 格式:

代码语言:python
复制
import 税法原文生成脚本 as fl
# 只换数据源栏目:法律 c100009 -> 行政法规 c100010
fl.BASE = 'https://fgk.chinatax.gov.cn/zcfgk/c100010/{}/content.html'

# 4 部暂行条例的 c 号(从 c100010 列表接口 getFileListByCodeId 取得)
REGS = [
    ('消费税暂行条例', 'c5194422'),
    ('房产税暂行条例', 'c5196866'),
    ('城镇土地使用税暂行条例', 'c5194445'),
    ('土地增值税暂行条例', 'c5194433'),
]

# parse_law 返回 units=[('article','第一条 …'), …]
# 转成生成器要的 blocks=[{'t':'art','h':'第一条','b':'…'}, …]
def units_to_blocks(units):
    blocks = []
    for kind, content in units:
        if kind == 'chapter':
            blocks.append({'t': 'chap', 'h': clean_heading(content), 'b': ''})
        elif kind == 'article':
            m = re.match(r'^(第[一二三四…\d]+条)\s*(.*)$', content, re.S)
            h, b = (m.group(1), m.group(2).strip()) if m else ('', content)
            blocks.append({'t': 'art', 'h': h, 'b': b})
        else:  # text / 续行(如税率表)
            blocks.append({'t': 'text', 'h': '', 'b': content})
    return blocks

落盘为 .tmp/laws_extra.json,格式与原有的 laws.json 完全一致。

步骤 2:修正 2025 年解读抓取逻辑

fetch_interp 改成「翻页遍历 + 客户端按年份过滤」:当整页最大年份已小于目标年份时停止(结果按时间倒序,之后不会再出现目标年份)。

代码语言:python
复制
def fetch_interp_year(year):
    items, seen = [], set()
    for rtype, label in [('文字', '文字解读'), ('图片', '图解解读')]:
        for page in range(0, 30):
            rows = search(column='政策解读', xxgkResolveType=rtype, pageNum=page)
            if not rows:
                break
            yrs = [str(v.get('cwrq', ''))[:4] for v in rows]
            if max(y for y in yrs if y) < year:   # 已越过目标年份
                break
            for v in rows:
                if not str(v.get('cwrq', ''))[:10].startswith(year):
                    continue                       # 只收目标年份
                # ... 加入 items(去重)
    return items

跑一次就拿到 2025 年 56 份文件 + 109 篇解读(34 文字 + 75 图解)。图解类正文为空是正常现象,生成器会标注「图解」并保留原文链接。

步骤 3:合并进生成脚本

生成税法知识库HTML.py 里把两份增量数据并进去:

代码语言:python
复制
# 原 15 部 + 新 4 部暂行条例
LAWS = json.load(open('.tmp/laws.json'))
LAWS += json.load(open('.tmp/laws_extra.json'))
# 2026 年 + 2025 年公告解读
DOCS = json.load(open('.tmp/data2026.json'))
DOCS += json.load(open('.tmp/data2025.json'))

再把页面里写死的「15 部 / 2026 年」文案改成「19 部 / 2025–2026 年」——侧边栏、统计卡片、总览标题、页面大标题都同步更新,避免和实际数据对不上。

步骤 4:重新生成 HTML

代码语言:bash
复制
PY=C:/Users/19802/.workbuddy/binaries/python/envs/default/Scripts/python.exe
$PY 生成税法知识库HTML.py
# 输出:税法 19 部 / 公告 128 份 / 解读 187 篇,文件 1.45 MB

四、真实踩过的坑(照抄可避雷)

  1. 暂行条例栏目搞错:4 部暂行条例在 c100010(行政法规),不在 c100009(法律)。先确认栏目再抓,解析逻辑可复用。
  2. 搜索接口日期过滤是摆设search5/search/scwrqStart/cwrqEnd 不生效,永远返回时间倒序的最新 10 条。取某一年必须翻页 + 客户端按年份筛,并在整页最大年份小于目标年时停止。
  3. 翻页早停会漏数据:如果像上篇那样「遇到非目标年份就 break」,2025 年解读会被前面排队的 2026 年条目提前打断、整批漏掉——所以改成「只跳过、不 break,直到整页都小于目标年」。
  4. 每页固定 10 条不是 50 条:接口 pageSize=50 实际只返回 10 条,翻页用 pageNum 递增即可,别被参数名骗了。
  5. 图解解读空正文正常:70 多页图解类解读 div.arc_cont 里只有一张图,应标注「图解」+ 原文链接,不要当成抓取失败。
  6. 写死数字要和真实数据同步:合并后务必把「15 / 2026」改成「19 / 2025–2026」,否则总览统计和实际对不上,读者一眼看出破绽。

五、可复用

整套脚本已经参数化:换年份(抓 2024、2023…)只要改 YEAR 重跑;换税种加一部暂行条例,往 REGS 列表里补一个 c 号即可。laws_extra.json / data2025.json 都留在 .tmp/ 里,下次重生成 HTML 直接读,不用重新抓。


六、结语

把 4 部暂行条例和 2025 年新政并进去后,这份知识库覆盖了中国 18 个税种里已立法的 15 部 + 以暂行条例存在的 4 部,以及 2025–2026 两年的国家税务总局公告与解读。从「每次上网现找」到「本地一键搜索 + 跨年对照」,全程在 WorkBuddy 里用 Python 脚本抓数据、解析、生成单文件 HTML 完成。如果你也维护某个行业的资料库,照这套「抓增量 → 转格式 → 合并 → 重生成」的套路,扩内容就是改几个参数的事。

提示:抓取的文本来自税务总局政策法规库,正式引用时仍以国家法律法规数据库(flk.npc.gov.cn)复核为准。暂行条例部分尚未立法,引用时请注意其行政法规层级。

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

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

目录
  • 补全 18 税种版图:用 WorkBuddy 把 4 部暂行条例与 2025 年新政并入税法知识库
    • 一、最终效果
    • 二、两个关键差异点(先搞清楚再动手)
      • 差异 1:暂行条例在「行政法规」库,不在「法律」库
      • 差异 2:2025 年政策解读的抓取有「隐藏坑」
    • 三、操作步骤(WorkBuddy 可直接照跑)
      • 步骤 1:复用解析逻辑,抓 4 部暂行条例
      • 步骤 2:修正 2025 年解读抓取逻辑
      • 步骤 3:合并进生成脚本
      • 步骤 4:重新生成 HTML
    • 四、真实踩过的坑(照抄可避雷)
    • 五、可复用
    • 六、结语
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档