---
name: 开源情报-专利采集
description: |
  开源情报专利采集技能。从 Google Patents、USPTO 等公开源采集专利结构化数据，
  支持17个标准采集字段（中文名称、英文名称、摘要、专利类型、申请/专利号、专利日期、
  公开/公告号、公开/公告日、主分类号、分类号、发明/设计人、优先权、法律状态、专利说明、
  专利授权日期、所属国家）及原始专利PDF附件下载。所有数据真实可溯源，附带数据护照。
  触发条件：用户要求采集专利数据、专利情报采集、专利搜索、专利分析、
  采集某公司/机构专利、按标题/关键词搜索专利、专利批量采集、
  认知雷达专利、认知电子战专利、认知干扰专利、军事专利采集。
---

# 开源情报-专利采集

**技能版本：** 1.0.0
**创建时间：** 2026-05-26
**作者：** 瞰宇

---

## 核心使命

从全球公开专利数据库（Google Patents、USPTO、WIPO等）采集结构化专利数据，涵盖17个标准采集字段，并下载原始专利PDF附件。所有数据真实可溯源，附带数据护照。

---

## 触发条件

用户明确请求采集专利数据时触发：
- "采集专利数据"、"专利采集"
- "搜索认知雷达/电子战/干扰相关专利"
- "采集Lockheed Martin/Raytheon等公司专利"
- "批量采集以下专利列表"
- "按标题搜索专利"
- "专利情报分析"

---

## 17个标准采集字段

| # | 字段名 | 说明 | 示例 |
|---|--------|------|------|
| 1 | 中文名称 | 专利标题中文翻译 | 认知雷达干扰决策方法 |
| 2 | 英文名称 | 专利标题原文 | Cognitive Radar Jamming Decision Method |
| 3 | 摘要 | 专利摘要 | A method for... |
| 4 | 专利类型 | 授权/申请/公开 | 授权专利 |
| 5 | 申请/专利号 | 申请号 | US14/915,571 |
| 6 | 专利日期 | 申请日期 | 2014-08-28 |
| 7 | 公开/公告号 | 公开号 | US10620304B2 |
| 8 | 公开/公告日 | 公开日期 | 2020-04-14 |
| 9 | 主分类号 | 主CPC分类号 | G01S13/00 |
| 10 | 分类号 | 所有CPC分类号 | G01S13/00; G01S7/02 |
| 11 | 发明/设计人 | 发明人列表 | John Smith; Jane Doe |
| 12 | 优先权 | 优先权日期 | 2013-08-28 |
| 13 | 法律状态 | Active/Withdrawn/Ceased | Active |
| 14 | 专利说明 | 受让人等补充说明 | 受让人: Lockheed Martin |
| 15 | 专利授权日期 | 授权日期 | 2020-04-14 |
| 16 | 所属国家 | 专利所属国家 | 美国 |

---

## 采集工作流程

### 第一步：任务分析与分类

将用户输入的专利列表分为三类：
1. **精确专利号**（如 US10620304B2）→ 直接采集详情
2. **论文/专利标题**（如 "Cognitive Radar Waveform Design"）→ 按标题搜索后采集
3. **机构/关键词搜索**（如 "Lockheed Martin"、Google Patents - 认知雷达）→ 搜索采集

### 第二步：数据采集

#### 方式A：按专利号直接采集
```
1. 构建 URL: https://patents.google.com/patent/{PATENT_ID}/en
2. 使用 Scrapling stealthy-fetch 采集（需 --network-idle --wait 3000）
3. 解析 Markdown 提取17个字段
4. 提取 PDF URL 并下载原始专利文件
5. 间隔 ≥3 秒
```

#### 方式B：按标题搜索采集
```
1. 构建搜索 URL: https://patents.google.com/?q=TI=("{title}")
2. 使用 Scrapling stealthy-fetch 采集搜索结果页
3. 从搜索结果提取专利号列表
4. 逐个采集详情（方式A）
5. 匹配最相关结果（标题相似度优先）
```

#### 方式C：按机构/关键词搜索
```
1. 构建搜索 URL: https://patents.google.com/?q={高级搜索语法}
2. 采集搜索结果，提取专利号列表
3. 逐个采集详情
4. 支持分页（每页约10条）
```

**高级搜索语法：** 详见 [references/google_patents_structure.md](references/google_patents_structure.md)

### 第三步：数据解析与结构化

运行采集脚本：
```bash
/root/miniconda3/envs/data-collector/bin/python scripts/patent_collector.py \
  --patent-id US10620304B2 \
  --output /tmp/patents/output
```

或批量采集：
```bash
/root/miniconda3/envs/data-collector/bin/python scripts/patent_collector.py \
  --list patent_list.txt \
  --output /tmp/patents/output
```

**重要：** 使用 Scrapling CLI 时的正确命令：
```bash
# 搜索页（必须 stealthy-fetch，普通 GET 返回 403）
scrapling extract stealthy-fetch "https://patents.google.com/?q=TI=(cognitive+radar)" \
  result.md --network-idle --wait 5000 --timeout 60000

# 详情页
scrapling extract stealthy-fetch "https://patents.google.com/patent/US10620304B2/en" \
  detail.md --network-idle --wait 3000 --timeout 60000
```

### 第四步：PDF 附件下载

从详情页 Markdown 中提取 PDF URL：
```
格式: https://patentimages.storage.googleapis.com/{hash}/{PATENT_ID}.pdf
```

下载命令：
```bash
curl -sL "{PDF_URL}" -o "{output_dir}/pdfs/{PATENT_ID}.pdf"
```

### 第五步：数据护照与质量检查

每批采集完成后自动生成数据护照，包含：
- 合规性声明
- 采集时间、数据来源、采集工具
- 各字段覆盖度统计
- 数据质量评分

### 第六步：结果输出

输出文件结构：
```
{output_dir}/
├── patents.json          # 结构化JSON（17字段+来源URL+PDF信息）
├── patents.csv           # CSV格式（Excel兼容，UTF-8 BOM）
├── data_passport.json    # 数据护照
└── pdfs/
    ├── US10620304B2.pdf
    ├── US8855230B1.pdf
    └── ...
```

---

## 机构专利搜索模板

| 机构 | Google Patents 搜索语法 |
|------|------------------------|
| Lockheed Martin | AN=("Lockheed Martin") |
| Raytheon/RTX | AN=("Raytheon") OR AN=("RTX") |
| Northrop Grumman | AN=("Northrop Grumman") |
| DARPA | AN=("Secretary of Defense") AND TAC=("DARPA") |
| US Navy/NRL | AN=("Secretary of the Navy") |
| US Air Force/AFRL | AN=("Secretary of the Air Force") |

---

## 数据源选择

- **首选：** Google Patents（全球覆盖、免费、PDF下载）
- **验证：** USPTO PPUBS（美国专利法律状态验证）
- **补充：** WIPO PatentScope（PCT国际专利）
- **批量：** USPTO PatentView API（结构化JSON批量查询）

详见 [references/patent_data_sources.md](references/patent_data_sources.md)

---

## 质量检查清单

- [ ] 所有17个字段均已尝试采集
- [ ] 英文名称与用户列表匹配（标题相似度 ≥80%）
- [ ] 公开/公告号格式正确（US/EP/WO + 数字 + 字母）
- [ ] PDF 已成功下载（文件大小 > 1KB）
- [ ] 数据护照已生成
- [ ] 采集间隔 ≥3 秒（合规）
- [ ] 所有 URL 可验证（200 OK）

---

## 常见问题

### Q: Google Patents 返回 403？
**A:** 必须使用 `stealthy-fetch`，普通 `get` 会被拒绝。

### Q: 搜索结果为空？
**A:** 尝试调整搜索语法：
- 去掉引号使用模糊搜索
- 使用 TAC= 代替 TI= 扩大范围
- 缩短关键词

### Q: 标题是论文而非专利？
**A:** 论文标题不一定对应专利。使用 TI= 搜索最相关专利，若无结果则用 TAC= 扩大搜索范围，并注明"无精确匹配，以下为相关专利"。

### Q: PDF 下载失败？
**A:** 部分专利（申请阶段）可能无 PDF。可尝试 USPTO 直接下载链接作为备选。

---

## 参考文件

- `scripts/patent_collector.py` — 专利采集与解析主脚本
- `references/google_patents_structure.md` — Google Patents 数据结构与搜索语法
- `references/patent_data_sources.md` — 专利数据源对比与选择策略
