法笺

fajian-chrome-extension

裁判文书一键保存为 Markdown / PDF 的 Chrome 扩展,纯本地零网络。

JavaScriptMIT★ 3更新于

GitHub 仓库

获取代码

git clone https://github.com/weitzu-com/fajian-chrome-extension.git

中国裁判文书网文书一键保存为 Markdown / PDF 的 Chrome 扩展(Manifest V3,纯本地,零网络请求) Version

这是什么

「法笺」是一个 Chrome 扩展:在已登录的中国裁判文书网文书详情页上,把当前这篇文书一键保存为结构化的 Markdown 和本地生成的 PDF,直接落进浏览器下载文件夹。

  • 保存 Markdown(含 YAML frontmatter:法院 / 案号 / 裁判日期 / 文书类型 / 案由 / 法条)
  • 保存 PDF(本机 canvas 排版生成,不走打印对话框)
  • 一键复制 Markdown 到剪贴板
  • 四种入口:页面右侧悬浮条 · 工具栏图标 · 右键菜单 · 快捷键 Ctrl+Shift+Y(macOS Cmd+Shift+Y)

为什么需要它(第一性原理)

中国裁判文书网没有公开 API,且反爬极严(瑞数/sojson 动态混淆、TLS 指纹、滑块验证码),2024 年起公开检索进一步收紧为实名登录。

法笺走的是另一条路——不逆向、不爬网络,只读「已经渲染好的页面」:

  1. 站方前端已用 jQuery 把文书结构化数据写进了内存($.WebSite.getModuleData(...)),正文、标题、案号、日期、案由、法条都在里面;
  2. 法笺直接读这套现成数据,配合 DOM 节点兜底(.PDF_title / .PDF_pox / #ahdiv);
  3. 全程零网络请求,反爬机制对它无效。

一句话:把「登录态下的合法浏览」直接变成「本地存档」。

安装

需要 Chrome(或其他 Chromium 内核浏览器)。开发者模式加载即可,无需上架商店。

方式一:源码加载

  1. 获取源码:git clone https://github.com/weitzu-com/fajian-chrome-extension.git(或 Code → Download ZIP 后解压)
  2. 打开 Chrome,地址栏输入 chrome://extensions 回车
  3. 打开右上角「开发者模式」开关
  4. 点「加载已解压的扩展程序」
  5. 选择 fajian-chrome-extension 目录(必须选含 manifest.json 的那一层)
  6. 扩展列表出现「法笺」即成功

方式二:AI 一键安装

把 prompts/install-prompts.md 里对应工具的提示词粘进 ChatGPT / Claude / Gemini / Kimi 等,让 AI 带你装。

使用

  1. 登录 wenshu.court.gov.cn,打开任意一篇文书全文(非列表页)
  2. 页面右侧出现「法笺」悬浮条(或点工具栏图标 / 右键菜单)
  3. 点 Markdown / PDF / 双存 / 复制
  4. 文件直接进入下载文件夹

工作原理

converter.js  抽取 + 解析 + 转 Markdown(法律文书结构解析器)
    ├─ getModuleData()  读站方内存 jQuery 模块数据(s1 标题 / s7 案号 / qwContent 正文 / ...)
    ├─ DOM 兜底         读 .PDF_title / .PDF_pox / .PDF_box / #ahdiv
    └─ parseLegalText() 案号正则 / 中文数字日期 / 段落归类(当事人/审理经过/本院查明/本院认为/裁判主文/落款…)
pdf.js        本地生成 PDF(canvas → JPEG → 手搓最小 PDF 容器,零第三方库)
content.js    注入悬浮条 + 消息路由 + 下载(blob → dataURL → chrome.downloads)
background.js 右键菜单 + 快捷键 + 下载处理器

项目结构

fajian-chrome-extension/
├── manifest.json        MV3 清单(权限最小化,仅 wenshu.court.gov.cn)
├── background.js        Service Worker(右键菜单/快捷键/下载)
├── content.js           页面注入:悬浮条 + 保存/复制路由
├── converter.js         文书抽取 + 法律结构解析 + Markdown
├── pdf.js               本机 canvas 排版生成 PDF
├── popup.{html,js,css}  工具栏弹窗
├── content.css          悬浮条样式
├── icons/               图标
├── prompts/             Top 10 AI 安装提示词
└── LICENSE              MIT

安全与隐私

  • 零网络请求:全文无 fetch / XMLHttpRequest / WebSocket / 埋点,文书只在本地处理
  • 权限最小化:host_permissions 仅 wenshu.court.gov.cn,无 <all_urls>、无 cookies、无 storage
  • 无第三方依赖:纯原生 JS,无 npm 包、无远程脚本、无混淆,全部源码可审计

已知限制

  • PDF 为「图片型」:由 canvas 渲染成 JPEG 再封装,PDF 文字不可选中/检索。要可检索文本请用 Markdown 版;或走 PDF 失败时的 fallback「印刷页」,用浏览器「存储为 PDF」得到真文本 PDF。
  • 依赖站方页面结构:getModuleData("1541573880000") 等模块 ID 与字段名是硬编码的,站方改版可能导致失效。
  • 需已登录且文书全文已显示后才能保存。

FAQ

Q:为什么不用 API / 爬虫? A:裁判文书网无公开 API,反爬极严且易封号。客户端读已渲染页面零风险。

Q:能不能批量抓全库? A:不能,也非设计意图。本工具定位是「单篇文书归档」,一次保存一篇,尊重站点访问。

Q:装完页面右侧没出现悬浮条? A:确认已登录、已打开「全文」而非列表页;刷新一次;确认加载的是含 manifest.json 的那层目录。

Q:点 Markdown 报「尚未读到文书正文」? A:先确认正文全文已滚动加载显示出来,再点保存。

AI 一键安装

见 prompts/install-prompts.md —— 覆盖 ChatGPT / Claude / Gemini / Grok / DeepSeek / Kimi / 豆包 / 通义千问 / 文心一言 / 智谱清言 共 10 个主流 AI 工具的安装提示词。

许可

MIT © 2026 法笺 (weitzu-com)

以上内容自动同步自 github.com/weitzu-com/fajian-chrome-extension的 README。