# 使用指南

## 快速开始

### 启动 CLI

```bash
nsfc-spider
```

你将看到交互式命令行界面：

```
==================================================
  国自然项目爬虫 CLI
  输入 /help 查看命令, /exit 退出
==================================================

nsfc>
```

### 基本命令

输入 `/help` 查看所有可用命令。

## 核心功能

### 1. 直接爬取（推荐）

使用 Playwright 精确控制，自动获取详情和摘要：

```bash
# 爬取3页
nsfc> /scrape 轨道交通 -p 3

# 爬取全部页面
nsfc> /scrape 轨道交通 -p all
```

### 2. 按年份爬取

获取更全面的数据：

```bash
# 最近5年，每年2页
nsfc> /scrape 轨道交通 -y 5 -p 2

# 指定年份范围
nsfc> /scrape 轨道交通 -y 2020-2024

# 指定多个年份，每年全部页面
nsfc> /scrape 轨道交通 -y 2023,2024 -p all
```

### 3. 批量搜索

搜索多个关键词，自动去重：

```bash
# 搜索3个关键词，每个2页
nsfc> /batch 轨道,铁路,高铁 -p 2

# 搜索全部页面
nsfc> /batch 轨道,铁路,高铁 -p all
```

### 4. 数据管理

#### 加载数据

```bash
# 显示文件列表，交互式选择
nsfc> /load

# 模糊匹配文件名
nsfc> /load nsfc_轨道

# 多选合并（输入序号用逗号分隔）
nsfc> /load
> 1,2,3
```

#### 导出数据

```bash
# 导出为 Excel（默认）
nsfc> /export excel

# 导出为 CSV
nsfc> /export csv

# 导出为 JSON（可被 /load 加载）
nsfc> /export json
```

### 5. 数据分析

统计分析年度分布、单位排名、关键词等：

```bash
nsfc> /analyze
```

输出示例：
```
【数据统计】
  总项目数: 150
  年度分布: 2024(50), 2023(45), 2022(55)
  
【单位排名 TOP 10】
  1. 清华大学: 15 项
  2. 北京交通大学: 12 项
  ...
```

### 6. LLM 智能筛选

根据条件筛选相关项目：

```bash
nsfc> /filter 与风险评估相关的项目
```

### 7. 生成研究综述

自动生成 Word 格式的研究综述：

```bash
# 基础用法
nsfc> /review 轨道交通安全风险研究综述

# 自定义要求
nsfc> /review 人工智能综述 | 重点分析深度学习，字数3000字以上
```

### 8. 一键流程

完整流程：爬取 → 筛选 → 综述

```bash
nsfc> /pipeline 轨道交通 -p 5 | 风险管理相关 | 轨道交通风险研究
```

## 高级功能

### 经验记忆系统

查看和添加 AI 经验：

```bash
# 查看所有经验
nsfc> /memory

# 添加新经验
nsfc> /memory add 搜索时需要等待页面完全加载
```

### 配置管理

```bash
# 配置 LLM
nsfc> /config

# 查看当前状态
nsfc> /status
```

## 使用技巧

### 1. 命令补全

输入 `/` 后按 Tab 键可自动补全命令。

### 2. 历史记录

使用上下箭头键浏览命令历史。

### 3. 文件命名

导出的文件会自动添加时间戳，避免覆盖。

### 4. 数据持久化

- JSON 格式的数据可以被 `/load` 重新加载
- Excel/CSV 格式适合进一步分析

### 5. 浏览器窗口

- 直接爬取模式会打开浏览器窗口
- 请勿手动操作浏览器
- 可在配置中设置 `HEADLESS=true` 隐藏窗口

## 常见问题

### 1. 爬取失败

- 检查网络连接
- 确认网站可访问
- 尝试减少并发数

### 2. LLM 功能不可用

- 确认已配置 API Key
- 运行 `/config` 重新配置
- 检查 API Key 是否有效

### 3. 数据不完整

- 使用 `-p all` 爬取全部页面
- 使用按年份爬取获取更多数据
- 检查网站是否有反爬限制

### 4. 内存占用高

- 分批处理大量数据
- 及时导出和清理数据
- 减少并发数

## 最佳实践

1. **先小规模测试**：先爬取少量数据测试，确认无误后再大规模爬取
2. **定期保存**：及时导出重要数据
3. **合理使用 LLM**：LLM 功能消耗 API 额度，按需使用
4. **遵守网站规则**：合理控制爬取频率，避免对网站造成压力

## 下一步

- 查看 [API 文档](API.md) 了解如何在代码中使用
- 查看 [开发指南](CONTRIBUTING.md) 了解如何贡献代码
