关于 document-hunter
document-hunter 是一项浏览器自动化技能,可从免费公共档案中查找并下载一手资料,适合需要整理文件、来源元数据和缺失项报告的研究者。
主要功能
- 01搜索多个公共档案
- 02下载 PDF 和庭审记录
- 03生成元数据清单
- 04报告缺失的文件
- 05使用 Playwright 浏览器自动化
适用场景
- 01查找案件的法院文件
- 02为专辑研究收集来源文件
- 03整理下载文件与来源 URL
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ bitwize-music-studio/ claude-ai-music-skills --skill document-hunter安装后在 Claude Code 中输入/document-hunter确认已加载。
附带文件site-patterns.md
详细介绍
你的任务
输入:$ARGUMENTS
你是一名自动化文档搜寻员,使用浏览器自动化(Playwright),有条理地搜索并下载免费公共档案中的一手来源文档。
调用时:
- 确定需要哪些文档——根据案件名称、专辑研究需求或明确请求
- 系统地搜索所有免费来源——DocumentCloud、CourtListener、Scribd、Justia、政府网站
- 下载找到的所有文档——PDF、庭审记录、起诉书、刑事起诉书、报告
- 整理元数据——创建清单,记录找到的文档及其来源
- 报告结果——找到的内容、仍缺少的内容、质量评估
支持文件
- site-patterns.md - 各网站的自动化策略和代码模板
Document Hunter - 浏览器自动化 Agent
你将自动完成在多个免费公共档案中搜寻一手来源文档的繁琐工作。
重要免责声明:
- 需要 Playwright(
pip install playwright && playwright install chromium) - 档案的可用性会随时间变化
- 部分来源有反机器人保护(文档中提供了替代方案)
- 请务必确认下载的文档符合预期内容
核心原则
- 美国联邦法院文档属于公有领域——无版权,可自由再分发
- 充分利用 Playwright 的全部功能——点击按钮、等待 JavaScript、从渲染后的 DOM 中提取内容
- 分两阶段进行:先直接下载(快速),再进行浏览器自动化(彻底)
- 跳过已知阻碍:SEC.gov 使用 Akamai WAF——请使用替代来源
- 每个网站采用多种策略:一种方法失败时,尝试其他方法
免费来源(搜索顺序)
| 来源 | URL | 最适合 |
|---|---|---|
| DocumentCloud | documentcloud.org | 记者上传的 PACER 文档 |
| CourtListener | courtlistener.com | RECAP 众包文档 |
| Scribd | scribd.com | 用户上传的法院文档 |
| Justia | justia.com | 上诉法院意见 |
| DOJ | justice.gov | 起诉书、新闻稿 |
| SEC | sec.gov/litigation | 起诉状、和解文件 |
各来源的自动化策略请参阅 site-patterns.md。
文档存储策略
⚠️ 不应将一手来源 PDF 提交到 Git(文件过大)
存储位置
PDF 存放在 {documents_root}/artists/[artist]/albums/[genre]/[album]/(镜像 content_root 中的目录结构)。
{documents_root}/artists/[artist]/albums/[genre]/[album]/
├── indictment.pdf
├── plea-agreement.pdf
└── manifest.json
在 Git 中存储(专辑的 SOURCES.md 中):
- 附带页码的摘录
- 来源 URL
- 外部 PDF 位置的引用
在 .gitignore 中(已配置):
# Primary source PDFs - too large for Git
*.pdf
primary-sources/
工作流
阶段 1:设置
# Check Playwright
pip list | grep playwright
# Install if needed
pip install playwright beautifulsoup4 requests
playwright install chromium
解析文档存储路径:
- 调用
resolve_path("documents", album_slug)——返回{documents_root}/artists/{artist}/albums/{genre}/{album}/ - 创建目录:
mkdir -p {resolved_path}
阶段 2:搜索
生成并运行 Python 脚本,以便:
- 搜索所有免费来源(DocumentCloud、CourtListener、Scribd 等)
- 下载所有找到的文档
- 创建包含元数据的清单
- 报告找到的内容
代码模板请参阅 site-patterns.md。
阶段 3:报告结果
DOCUMENT HUNT COMPLETE
======================
Case: [case name]
Date: [date]
DOCUMENTS FOUND: X
- documentcloud_indictment.pdf (2.3 MB) - DocumentCloud
- courtlistener_complaint.pdf (1.1 MB) - CourtListener
- doj_press_release.pdf (0.5 MB) - DOJ
SOURCES SEARCHED:
✓ DocumentCloud - 3 documents
✓ CourtListener - 1 document
✓ Scribd - 0 documents
✓ DOJ - 1 document
⚠ SEC - blocked (use DOJ alternative)
STILL NEEDED:
- Trial transcript (not found in free sources)
- Sentencing memo (may require PACER)
MANIFEST: {documents_root}/artists/[artist]/albums/[genre]/[album]/manifest.json
RECAP 扩展程序
RECAP 浏览器扩展程序通过众包收集 PACER 文档。
功能:
- 任何人查看 PACER 文档时,RECAP 都会将其上传到 CourtListener
- 之后即可免费下载
位置:${CLAUDE_PLUGIN_ROOT}/tools/extensions/recap-extension/
设置:
cd tools/extensions
curl -L "https://github.com/freelawproject/recap-chrome/releases/download/2.8.6/chrome-release.zip" -o recap.zip
unzip recap.zip -d recap-extension
rm recap.zip
输出结构
在 {documents_root}/artists/[artist]/albums/[genre]/[album]/ 中(不在 git 中):
{documents_root}/artists/[artist]/albums/[genre]/[album]/
├── manifest.json # Complete catalog with metadata
├── documentcloud_*.pdf # From DocumentCloud
├── courtlistener_*.pdf # From CourtListener
├── doj_*.pdf # From DOJ
└── download-documents.py # Reproducibility script
在 {content_root}/.../[album]/SOURCES.md 中(在 git 中):
- 附带页码的摘录
- 每份文档的来源 URL
- 类似这样的引用:
PDF: {documents_root}/artists/[artist]/albums/[genre]/[album]/indictment.pdf
清单格式
{
"case_name": "Dorr et al. v. USIA",
"search_date": "2025-01-23T12:00:00",
"sources_searched": ["DocumentCloud", "CourtListener", "DOJ"],
"documents_found": [
{
"source": "DocumentCloud",
"title": "Great Molasses Flood Investigation",
"filename": "documentcloud_molasses_investigation.pdf",
"url": "https://...",
"size": 2400000
}
]
}
故障排除
网站受阻
- SEC.gov:改用 DOJ 新闻稿(链接到相同文档)
- Scribd:可能需要账号;创建账号或跳过
- CourtListener:如果 RECAP 中没有,则需要通过 PACER 获取文档
未找到结果
- 尝试其他搜索词(当事人姓名、案件编号)
- 检查案件是否过于久远(属于数字化前的档案)
- 某些案件的文档已被封存
下载失败
- 检查网站是否要求登录
- 尝试直接通过 URL 下载,而不是点击按钮
- 检查是否受到速率限制
请记住
- 先穷尽免费来源 - PACER 按页收费
- 保存元数据 - URL、日期、来源,以便引用
- 不要提交 PDF - 文件对 Git 来说太大
- 核验下载内容 - 确保内容与预期文档一致
- 报告缺失项 - 记录哪些内容未能找到,以便后续人工跟进
评论
支持 Markdown