name: china-law-search description: 中國國家法律法規資料庫(flk.npc.gov.cn)查詢工具。支援法規搜尋、詳情檢視、狀態檢查、按日期篩選新發布法規、批次狀態核查。觸發詞:法律法規、法規查詢、法規檢索、法規狀態、法規廢止、法規修訂、新發布法規、flk、國家法律法規資料庫、china law、law search、規章查詢、部門規章、地方規章、國家規章庫、規章檢索、gov.cn規章。 slug: nigo-china-law-search displayName: 國家法律法規查詢 version: 1.0.0 summary: 中國國家法律法規資料庫(flk.npc.gov.cn)查詢工具,支援法規搜尋、詳情檢視、狀態檢查、按日期篩選新發布法規、批次狀態核查。 license: MIT
統一查詢入口,自動先查國家法律法規資料庫(flk.npc.gov.cn),查不到再 fallback 到國家規章庫(gov.cn)。
覆蓋範圍: - 國家法律法規資料庫:憲法、法律、行政法規、地方法規、司法解釋、監察法規 - 國家規章庫:部門規章、地方政府規章
import sys, os
sys.path.insert(0, os.path.expanduser("~/.claude/skills/china-law-search/scripts"))
import law_search
# ── 搜尋 ──
result = law_search.unified_search("安全生產法")
result = law_search.unified_search("危險化學品 安全管理", content_search=True)
# ── 批次檢查 ──
results = law_search.unified_batch_check(["法規名稱1", "法規名稱2"])
# ── 從Excel批次檢查並輸出Excel(一步到位,支援斷點續查)──
law_search.batch_check_to_excel(
input_excel="法律法規清單.xlsx",
output_excel="法規有效性查詢結果.xlsx",
col="B", # 法規名稱所在列
start_row=2, # 資料起始行(跳過表頭)
progress_file="check_progress.json", # 斷點續查進度檔案
)
# ── 查詢新發布法規並輸出Excel ──
law_search.new_since_to_excel("2026-01-01", "2026年新發布法規.xlsx")
# ── 批次下載法規全文(推薦工作流:查詢→轉格式→下載→重試)──
import json
# Step 1: 批次查詢
results = law_search.unified_batch_check(["法規名稱1", "法規名稱2"])
# Step 2: 轉成 batch_download_from_check 需要的格式
check_progress = {}
for r in results:
name = r.get("name", "")
check_progress[name] = {
"status": r.get("status", ""),
"url": r.get("url", ""),
"source": "國家規章庫" if r.get("source") == "gov.cn" else "國家法律法規資料庫",
}
# Step 3: 批次下載(支援斷點續下)
law_search.batch_download_from_check(
check_progress=check_progress,
output_dir="./下載",
delay=0.5,
dl_progress_file="download_progress.json",
)
# Step 4: 如有超時,直接重跑(自動跳過已下載的)
law_search.batch_download_from_check(
check_progress=check_progress,
output_dir="./下載",
delay=0.5,
dl_progress_file="download_progress.json",
)
# ── 單獨呼叫某個庫 ──
from lib import flk_api, gov_api
flk_api.search("安全生產法", exact=True)
flk_api.search("危險化學品", content_search=True)
flk_api.search_all_pages("消防安全", content_search=True)
gov_api.search("商品房屋租賃管理辦法")
gov_api.search("消防安全", content_search=True)
# 下載
flk_api.download_file("bbbs_id", output_dir="./downloads")
gov_api.download_as_docx("商品房屋租賃管理辦法", output_dir="./downloads")
LAW=~/.claude/skills/china-law-search/scripts/law_search.py
# ── 搜尋 ──
python3 $LAW search "安全生產法"
python3 $LAW search "安全生產法" --exact
python3 $LAW search "危險化學品 安全管理" --content
python3 $LAW search "消防安全" --content --all-pages
# ── 批次檢查 ──
python3 $LAW batch-check laws.txt
python3 $LAW batch-check laws.txt --json
# ── 從Excel批次檢查並輸出Excel ──
python3 $LAW check-excel 法律法規清單.xlsx -o 查詢結果.xlsx --col B --progress progress.json
# ── 查詢新發布法規並輸出Excel ──
python3 $LAW new-since-excel 2026-01-01 -o 2026年新發布法規.xlsx
# ── 查詢新發布法規(文本輸出)──
python3 $LAW new-since 2025-03-09
python3 $LAW new-since 2025-03-09 --all-types --all-pages --json
# ── 下載 ──
python3 $LAW download <bbbs_id> --output ./downloads
python3 $LAW batch-download check_result.json --output ./downloads
# ── 從檢查進度批次下載 ──
python3 $LAW download-from-check progress.json -o ./下載 --dl-progress dl_progress.json
china-law-search/
├── SKILL.md # 本檔案
├── scripts/
│ ├── law_search.py # 統一入口(推薦使用)
│ └── flk_api.py # flk.npc.gov.cn 獨立客戶端(向後相容)
└── lib/
├── __init__.py
├── flk_api.py # 國家法律法規資料庫 API
├── gov_api.py # 國家規章庫 API
├── refresh_gov_key.js # playwright-cli 重新整理 athenaappkey 指令碼
└── .athena_key_cache.json # athenaappkey 快取(自動生成)
| 函式 | 用途 | 輸入 | 輸出 |
|---|---|---|---|
unified_search() |
統一搜索(兩庫) | 關鍵詞 | dict |
unified_batch_check() |
批次檢查狀態 | 名稱列表 | list |
batch_check_to_excel() |
Excel→批次檢查→Excel | 輸入Excel路徑 | 輸出Excel |
new_since_to_excel() |
新發布法規→Excel | 日期 | Excel檔案 |
unified_new_since() |
新發布法規查詢 | 日期 | dict |
batch_download_from_check() |
批次下載全文 | 檢查進度dict | 下載進度dict |
所有查詢結果統一包含以下欄位:
| 欄位 | 說明 |
|---|---|
| title | 法規名稱 |
| type / flxz | 法規類別(法律/行政法規/部門規章/地方政府規章等) |
| date / gbrq | 公佈日期 |
| status / sxx_text | 狀態(有效/已修改/已廢止/尚未生效) |
| org / zdjgName | 制定機關 |
| source | 資料來源:國家法律法規資料庫 或 國家規章庫 |
| url | 原文連結(可點選) |
download_file() 內部通過 playwright-cli 獲取簽名URL繞過pandoc(brew install pandoc)和 python-docx(pip install python-docx)batch_download_from_check() 從檢查進度資料批次下載國家規章庫 API 需要動態認證 key,約 1 小時過期。
gov_api.py 檢測到 key 過期或無效時,會自動通過 playwright-cli 攔截瀏覽器請求獲取新 key,並驗證有效性後再快取。流程:
1. 用 playwright-cli open 開啟規章庫頁面
2. 用 playwright-cli --raw run-code 攔截 athena/forward 請求,提取 athenaappkey header
3. 發一個測試請求驗證 key 有效性(resultCode.code == 200)
4. 驗證通過後儲存到快取,關閉瀏覽器
如果自動重新整理失敗(playwright-cli 不可用或網路問題),可按下方"athenaappkey 重新整理標準流程"手動獲取。
下載檔案命名: 法規型別_法規名稱_公佈日期_狀態.ext
例如: 法律_中華人民共和國安全生產法_2021-06-10_有效.docx
想要更強大的技能外掛,就來小蔥技能站7w4.net看看吧。
flk_api.download_file() 內部通過 playwright-cli 獲取簽名下載URLThe read operation timed out),這是 flk 的反爬觸發了batch_download_from_check() 支援斷點續下,超時的條目重跑即可自動跳過已完成的result.data 是 dict,包含 pager 和 listresult.data 是 list(直接是結果列表),result.totalCount 和 result.pageSize 在上層gov_api.py 的 search() 和 search_with_content() 已相容兩種格式data: [] + resultCode 包含錯誤資訊(如 athena_01503 解密失敗)gov_api.py 已改進為自動重新整理 + 驗證:key 過期或無效時自動通過 playwright-cli 攔截請求獲取新 key,並驗證有效性@playwright/cli),未安裝時會自動通過 npm install -g @playwright/cli 安裝Step 1:開啟規章庫頁面
playwright-cli open https://www.gov.cn/zhengce/xxgk/gjgzk/index.htm
Step 2:攔截請求獲取 key
playwright-cli --raw run-code "async page => {
const keys = [];
await page.route(url => url.href.includes('athena/forward'), async route => {
const key = route.request().headers()['athenaappkey'] || '';
if (key) keys.push(key);
await route.continue();
});
await page.reload({ waitUntil: 'networkidle' });
await page.waitForTimeout(3000);
await page.unroute(url => url.href.includes('athena/forward'));
return keys.join(',');
}"
輸出是逗號分隔的多個 key(都一樣),取第一個即可。
Step 3:儲存到快取檔案
import json, time, os
key = '這裡貼上Step2輸出的第一個key'
cache_path = os.path.expanduser('~/.claude/skills/china-law-search/lib/.athena_key_cache.json')
with open(cache_path, 'w') as f:
json.dump({'key': key, 'ts': time.time()}, f)
Step 4:關閉瀏覽器
playwright-cli close
重新整理後快取有效期約1小時,足夠完成大部分批次操作。
batch_check_to_excel() 並指定 progress_filedl_progress_file 支援斷點續下name, found, title, status, bbbs, url, flxz, source 等欄位found=True 時有完整資訊,found=False 時只有 name 和 statusbatch_download_from_check(),需要轉成 {法規名: {status, url, source, ...}} 格式的 dictunified_batch_check 返回的 status 欄位對規章庫結果是 "有效(規章庫)",source 是 "gov.cn"{"total": N, "rows": [...]}bbbs(ID)、title、gbrq、sxx(時效性編碼)、flxz(法規分類)等gbrq 欄位可能是 None(不是空字串),比較時需要處理 None 值batch_check() 內部已有精確匹配邏輯,不要自己寫匹配邏輯,直接用 unified_batch_check--content 按正文內容搜尋,兩個庫都支援--all-pages 自動翻頁獲取全部結果,適用於結果較多的場景pip install openpyxl)unified_batch_check(),它內部已處理好精確匹配、多版本選擇、None 值等邊界情況batch_download_from_check() 組合 unified_batch_check() 的結果,它自動區分 flk/規章庫並支援斷點續下當使用本 skill 完成任務後,如果發現以下情況,應自動更新 skill 程式碼和文件:
lib/flk_api.py 或 lib/gov_api.pyscripts/law_search.py 並更新 SKILL.md更新時遵循以下原則: - 保持向後相容,不破壞已有的 API - 新增函式同時提供 Python API 和 CLI 介面 - 所有批次操作都支援斷點續做(通過進度檔案) - 更新 SKILL.md 的函式一覽表和使用示例
作者:nigo 微信公眾號:逆行的狗
質量良好,文件詳細且功能實用,搜尋和批次檢查功能穩定可靠,Excel 匯出和斷點續做機制設計合理。優點是覆蓋兩個權威法規庫、支援批次操作、異常處理完善。不足是部分功能依賴外部工具安裝,可能出現環境配置問題,整體使用門檻稍高。適合需要頻繁查詢法規的使用者使用。