NSFC Spider - 国自然大数据平台智能爬虫
🕷️ AI驱动的国家自然科学基金项目数据采集工具
基于 browser-use 框架,使用大语言模型智能理解网页结构,自动适应页面变化。
特性
- 🤖 AI 驱动:使用 LLM 理解网页,自动适应页面变化
- 💬 对话式 CLI:交互式命令行界面
- 🔧 灵活配置:支持多种 LLM 提供商
- 📊 结构化输出:JSON/CSV/Markdown 格式导出
安装
方式一:使用 pip 安装(推荐)
# 1. 安装包
pip install nsfc-spider
# 2. 安装浏览器
playwright install chromium
方式二:从源码安装
# 1. 克隆仓库
git clone https://github.com/yourusername/nsfc-spider.git
cd nsfc-spider
# 2. 安装依赖
pip install -e .
# 3. 安装 Playwright 浏览器
playwright install chromium
配置
快速配置(推荐)
安装后首次运行,使用交互式配置:
nsfc-spider
在 CLI 中输入 /config 按提示配置 LLM API。
手动配置
创建配置文件 config/.env 或 .env:
# LLM 配置
LLM_PROVIDER=openai
LLM_MODEL=gpt-4o
LLM_API_KEY=your-api-key-here
LLM_BASE_URL=https://api.openai.com/v1
# 浏览器配置
HEADLESS=false
获取 API Key:
- OpenAI: https://platform.openai.com/api-keys
- Anthropic: https://console.anthropic.com/
- DeepSeek: https://platform.deepseek.com/
详细配置说明请查看 配置指南。
快速开始
使用命令行工具
# 安装后直接运行
nsfc-spider
# 或使用 Python 模块方式
python -m nsfc_spider.cli
开发模式运行
# 从源码目录运行
cd nsfc-spider
python run.py
CLI 命令
nsfc> help # 查看帮助
nsfc> config # 配置 LLM 和浏览器
nsfc> search 智慧港口 # 搜索项目
nsfc> search 人工智能 -p 3 # 搜索并爬取3页
nsfc> task <自然语言任务> # 执行自定义任务
nsfc> status # 查看配置状态
nsfc> exit # 退出
支持的 LLM
- OpenAI (gpt-4o, gpt-4o-mini)
- Anthropic (claude-sonnet-4)
- DeepSeek
- Ollama (本地模型)
项目结构
nsfc-spider/
├── src/nsfc_spider/
│ ├── __init__.py
│ ├── agent.py # Agent 封装
│ ├── config.py # 配置管理
│ ├── cli/ # CLI 模块
│ └── tasks/ # 爬取任务
│ ├── direct_scraper.py # 直接爬取
│ ├── nsfc_search.py # AI搜索
│ ├── analyzer.py # 数据分析
│ ├── llm_filter.py # LLM筛选
│ └── review_generator.py # 综述生成
├── config/
│ └── .env.example
├── tests/ # 测试文件
├── docs/ # 文档
├── run.py # 开发入口
├── main.py # 打包入口
└── pyproject.toml # 项目配置
文档
许可证
MIT License - 详见 LICENSE 文件
贡献
欢迎提交 Issue 和 Pull Request!查看 贡献指南 了解详情。
更新日志
查看 CHANGELOG.md 了解版本更新历史。
致谢
- browser-use - 核心浏览器自动化框架
- Playwright - 浏览器控制
- 所有贡献者和用户
联系方式
- 📦 PyPI: https://pypi.org/project/nsfc-spider/
- 🐛 问题反馈: GitHub Issues
Metadata
Release files for nsfc-spider 0.1.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| nsfc_spider-0.1.6.tar.gz | 2.1 MB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| nsfc_spider-0.1.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 2.1 MB
Release files / nsfc_spider-0.1.6.tar.gz
| Download URL | nsfc_spider-0.1.6.tar.gz |
|---|---|
| Size | 2.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
eea0a4d93c6f27c09532433f86a8d04bf375261d0e1e832f668cbfa6c4b45681
|
|
BLAKE2b-256 checksum How to use checksums |
b6d9ccac66a4df6dae2c99308e56eb716981313106a6100679d293c42e70771b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.7
|
Release files / nsfc_spider-0.1.6-py3-none-any.whl
| Download URL | nsfc_spider-0.1.6-py3-none-any.whl |
|---|---|
| Size | 47.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
18e05ac76295128a1456fedc8d18fcc702002fc72a73d2fc4a3aecc9bee75360
|
|
BLAKE2b-256 checksum How to use checksums |
2c8769f8a95888a215bf63a1fe433236f8e5f156693411f2c03cec8b801e03a1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.7
|
Security for nsfc-spider 0.1.6
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.