Metadata-Version: 2.4
Name: pdfget
Version: 0.1.0
Summary: 智能文献搜索与批量下载工具，支持高级检索和并发下载
Author-email: gqy <qingyu_ge@foxmail.com>
License: MIT
Requires-Python: >=3.12
Requires-Dist: pandas>=2.0.0
Requires-Dist: requests>=2.31.0
Provides-Extra: dev
Requires-Dist: black>=24.0.0; extra == 'dev'
Requires-Dist: isort>=5.13.0; extra == 'dev'
Requires-Dist: mypy>=1.9.0; extra == 'dev'
Requires-Dist: pytest-cov>=5.0.0; extra == 'dev'
Requires-Dist: pytest>=8.0.0; extra == 'dev'
Requires-Dist: ruff>=0.5.0; extra == 'dev'
Description-Content-Type: text/markdown

# PDFGet - 高效文献下载工具

智能文献搜索与批量下载工具，支持高级检索和并发下载。

## 1. 项目概述

PDFGet是一个专为科研工作者设计的智能文献搜索与批量下载工具，集成了Europe PMC等权威学术数据库，提供高效的文献获取和管理功能。

### 1.1 主要特性

- 🔍 **高级搜索**：支持布尔运算符、字段检索、短语检索
- 🚀 **并发下载**：多线程并行下载，3-5倍速度提升
- 📊 **丰富元数据**：包含作者、单位、期刊、摘要、引用等完整信息
- 💾 **智能缓存**：24小时缓存，避免重复下载
- 📄 **批量处理**：支持CSV/TXT文件批量下载

## 2. 安装与配置

### 2.1 系统要求

详细的系统要求和依赖信息请查看 [pyproject.toml](pyproject.toml) 文件。

### 2.2 安装方法

```bash
# 使用pip安装
pip install pdfget

# 使用uv安装
uv add pdfget

# 或从源码安装
git clone https://github.com/gqy20/pdfget.git
cd pdfget
pip install -e .
```

### 2.3 快速开始

安装完成后，您可以直接使用 `pdfget` 命令：

```bash
# 搜索文献
pdfget -s "machine learning" -l 20

# 搜索并下载
pdfget -s "cancer immunotherapy" -d

# 并发下载（5线程）
pdfget -s "deep learning" -l 50 -d -t 5

# 单篇文献下载
pdfget --doi 10.1016/j.cell.2020.01.021

# 批量下载
pdfget -i dois.csv -d -t 3
```

如果您使用 uv 作为包管理器，也可以：
```bash
# 使用uv运行
uv run pdfget -s "machine learning" -l 20
```

## 3. 高级检索语法

### 3.1 布尔运算符
```bash
# AND: 同时包含多个关键词
pdfget -s "cancer AND immunotherapy" -l 30

# OR: 包含任意关键词
pdfget -s "machine OR deep learning" -l 20

# NOT: 排除特定词汇
pdfget -s "cancer AND immunotherapy NOT review" -l 30

# 复杂组合
pdfget -s "(cancer OR tumor) AND immunotherapy NOT mice" -l 25
```

### 3.2 字段检索
```bash
# 标题检索
pdfget -s 'title:"deep learning"' -l 15

# 作者检索
pdfget -s 'author:hinton AND title:"neural networks"' -l 10

# 期刊检索
pdfget -s 'journal:nature AND cancer' -l 20

# 年份检索
pdfget -s 'cancer AND year:2023' -l 15
```

### 3.3 短语和精确匹配
```bash
# 短语检索（用双引号）
pdfget -s '"quantum computing"' -l 10

# 混合使用
pdfget -s '"gene expression" AND (cancer OR tumor) NOT review' -l 20
```

### 3.4 实用检索技巧
- 使用括号分组复杂的布尔逻辑
- 短语用双引号确保精确匹配
- 可以组合多个字段进行精确检索
- 使用 NOT 过滤掉不相关的结果（如综述、评论等）

## 4. 性能优势

### 4.1 并发下载效率对比

| 文献数量 | 单线程耗时 | 并发耗时 | 性能提升 |
|---------|-----------|----------|----------|
| 5篇     | ~25秒     | ~8秒     | 3x       |
| 20篇    | ~100秒    | ~25秒    | 4x       |
| 50篇    | ~250秒    | ~60秒    | 4x       |

## 5. 命令行参数详解

### 5.1 核心参数
- `-s QUERY` : 搜索文献
- `--doi DOI` : 下载单个文献
- `-i FILE` : 批量输入文件
- `-d` : 下载PDF

### 5.2 优化参数
- `-l NUM` : 搜索结果数量（默认50）
- `-t NUM` : 并发线程数（默认3）
- `-v` : 详细输出

## 6. 输出格式与文件结构

### 6.1 搜索结果格式
```json
{
  "query": "关键词",
  "total": 10,
  "results": [
    {
      "title": "文献标题",
      "authors": ["作者1", "作者2"],
      "journal": "期刊名称",
      "year": "2025",
      "doi": "10.1016/xxx",
      "affiliation": "作者单位",
      "citedBy": 0,
      "keywords": ["关键词1", "关键词2"]
    }
  ]
}
```

### 6.2 文件目录结构
```
data/
├── pdfs/           # 下载的PDF文件
├── cache/          # 缓存文件
└── download_results.json  # 下载结果记录
```

## 7. 许可证

本项目采用 MIT License，允许自由使用和修改。

## 📚 更新日志

<details>
<summary><strong>📋 查看版本更新历史</strong></summary>

- 🔗 **完整更新日志**: [CHANGELOG.md](CHANGELOG.md)
- ✨ **最新版本 (v0.1.0)**: 高级文献搜索 + 并发下载 + 智能缓存

</details>

## 🔗 相关链接

- **项目源码**: [GitHub Repository](https://github.com/gqy20/pdfget)
- **问题反馈**: [GitHub Issues](https://github.com/gqy20/pdfget/issues)
