# NSFC Spider 项目总结

## 项目信息

- **项目名称**: nsfc-spider
- **版本**: 0.1.0
- **描述**: 国自然大数据平台智能爬虫 - AI驱动的基金项目数据采集工具
- **许可证**: MIT

## 项目特点

### 核心优势

1. **AI 驱动** 🤖
   - 使用大语言模型理解网页结构
   - 自动适应页面变化
   - 智能数据提取

2. **双模式爬取** 🔍
   - 直接爬取模式（推荐）：Playwright 精确控制
   - AI 搜索模式（实验性）：LLM 自动操作

3. **完整工作流** 📊
   - 数据采集 → 智能筛选 → 综述生成
   - 一键流程自动化

4. **灵活配置** 🔧
   - 支持多种 LLM 提供商
   - 可配置的爬取策略
   - 经验记忆系统

## 项目结构

```
nsfc-spider/
├── src/nsfc_spider/          # 源代码
│   ├── __init__.py           # 包初始化
│   ├── agent.py              # Agent 封装
│   ├── config.py             # 配置管理
│   ├── memory.py             # 记忆系统
│   ├── cli/                  # CLI 模块
│   │   └── __init__.py       # 交互式命令行
│   └── tasks/                # 任务模块
│       ├── __init__.py
│       ├── direct_scraper.py # 直接爬取
│       ├── nsfc_search.py    # AI 搜索
│       ├── analyzer.py       # 数据分析
│       ├── llm_filter.py     # LLM 筛选
│       ├── review_generator.py # 综述生成
│       └── models.py         # 数据模型
├── tests/                    # 测试文件
│   ├── test_scraper.py
│   └── test_deep_research.py
├── docs/                     # 文档
│   ├── INSTALLATION.md       # 安装指南
│   ├── USAGE.md              # 使用指南
│   ├── CONTRIBUTING.md       # 贡献指南
│   └── RELEASE.md            # 发布指南
├── config/                   # 配置
│   └── .env.example          # 环境变量示例
├── scripts/                  # 脚本
│   └── release.py            # 发布脚本
├── .github/                  # GitHub 配置
│   └── workflows/
│       └── publish.yml       # 自动发布
├── .gitignore                # Git 忽略文件
├── LICENSE                   # MIT 许可证
├── CHANGELOG.md              # 更新日志
├── MANIFEST.in               # 打包配置
├── README.md                 # 项目说明
├── pyproject.toml            # 项目配置
├── main.py                   # 打包入口
└── run.py                    # 开发入口
```

## 主要功能

### 1. 数据采集
- 关键词搜索
- 按年份爬取
- 批量搜索
- 自动获取详情和摘要

### 2. 数据管理
- JSON/Excel/CSV 导出
- 数据加载和合并
- 自动去重

### 3. 数据分析
- 年度分布统计
- 单位排名
- 关键词分析

### 4. 智能功能
- LLM 智能筛选
- 自动生成研究综述
- 经验记忆系统

## 技术栈

- **语言**: Python 3.11+
- **核心框架**: browser-use, Playwright
- **LLM 集成**: OpenAI, Anthropic, DeepSeek, Ollama
- **数据处理**: Pydantic, openpyxl, python-docx
- **CLI**: prompt_toolkit

## 发布准备

### 已完成
- ✅ 项目重命名为 nsfc-spider
- ✅ 更新所有代码引用
- ✅ 完善 README.md
- ✅ 添加 MIT 许可证
- ✅ 创建 CHANGELOG.md
- ✅ 编写完整文档
- ✅ 配置发布流程
- ✅ 添加 GitHub Actions

### 发布前需要做的
1. 更新 GitHub 仓库 URL（替换 `yourusername`）
2. 配置 PyPI API Token
3. 运行测试确保通过
4. 删除旧的 `nsfc_scraper` 目录

## 安装使用

### 安装
```bash
pip install nsfc-spider
playwright install chromium
```

### 使用
```bash
nsfc-spider
```

## 命令示例

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

# 按年份爬取
nsfc> /scrape 轨道交通 -y 5 -p 2

# 批量搜索
nsfc> /batch 轨道,铁路,高铁 -p 2

# 数据分析
nsfc> /analyze

# LLM 筛选
nsfc> /filter 与风险评估相关的项目

# 生成综述
nsfc> /review 轨道交通安全风险研究综述

# 一键流程
nsfc> /pipeline 轨道交通 -p 5 | 风险管理相关 | 轨道交通风险研究
```

## 下一步计划

### 短期
- [ ] 发布到 PyPI
- [ ] 完善测试覆盖
- [ ] 优化性能

### 中期
- [ ] 添加更多数据源
- [ ] 支持更多导出格式
- [ ] Web UI 界面

### 长期
- [ ] 分布式爬取
- [ ] 实时监控
- [ ] 数据可视化

## 贡献

欢迎提交 Issue 和 Pull Request！

查看 [贡献指南](docs/CONTRIBUTING.md) 了解详情。

## 许可证

MIT License - 详见 [LICENSE](LICENSE) 文件

---

**项目状态**: ✅ 已完成重构，准备发布
**最后更新**: 2026-02-08
