paper-fetcher

📄 一键获取学术文献的科研助手

🥥8总安装量 2评分人数 3
100% 的用户推荐

基于Sci-Hub的学术论文自动下载工具,支持DOI解析与PDF批量获取,为科研人员提供便捷的文献获取通道,但存在法律合规与注入安全风险。

C

存在明显风险,不建议直接用于敏感场景

  • 来自可信组织或认证账号,需要结合权限范围判断
  • ❌ <br/>**法律合规风险**:使用 Sci-Hub 服务获取受版权保护内容,在多数司法管辖区存在明确法律争议,机构用户需审慎评估
  • ⚠️ <br/>**URL 注入隐患**:DOI 参数通过 f-string 直接拼接至 URL,未使用 `urllib.parse.quote()()` 完全编码,存在潜在注入攻击面
  • ⚠️ <br/>**路径遍历防护不足**:文件名仅替换 `/` 和 `\` 字符,未验证输出目录边界,可能被绕过写入非预期位置
  • ⚠️ <br/>**临时文件处理缺陷**:使用固定名称 `temp_scihub.html`,多进程环境下可能产生竞态冲突,建议使用 `tempfile` 模块
  • ✅ <br/>**无敏感数据泄露**:无需身份认证,不记录用户凭据或隐私信息

使用说明

核心用法

Paper Fetcher 是一款面向科研场景的自动化文献获取工具,核心功能是通过 DOI(数字对象标识符)从 Sci-Hub 平台下载学术论文 PDF。用户只需提供 DOI 字符串(支持带或不带 https://doi.org// 前缀),工具即可自动完成:解析 DOI → 访问 Sci-Hub → 定位 PDF 下载链接 → 保存至本地 research/papers// 目录的全流程。支持单篇获取与批量处理,文件名自动规范化(将 DOI 中的斜杠替换为下划线),便于后续与 Obsidian 等知识管理工具联动构建个人文献库。

显著优点

1. 操作极简:无需手动浏览 Sci-Hub 网页,一句话指令即可完成下载,大幅降低文献获取门槛。
2. 批量处理能力:支持同时提交多个 DOI,自动串行处理,适合系统性文献调研场景。

3. 生态集成友好:输出路径固定且规范,易于与 Obsidian Sync、研究自动化工作流等工具链整合。

4. 零配置依赖:无需 API 密钥或账号体系,开箱即用。

潜在缺点与局限性

1. 法律合规风险:Sci-Hub 的运营模式在多数司法管辖区存在版权争议,使用该工具可能触及当地法律法规,机构用户需特别审慎。
2. 服务稳定性不可控:Sci-Hub 域名频繁更换(当前硬编码为 sci-hub.su),一旦服务中断或域名失效,工具将完全失效。

3. 元数据缺失:仅下载 PDF 文件,不提取标题、作者、摘要等元数据,需配合其他工具完成文献管理。

4. 网络依赖性强:无离线缓存或失败重试机制,网络波动易导致任务中断。

适合的目标群体

  • 独立科研人员:缺乏机构数据库访问权限的个体研究者
  • 学生群体:需要快速获取课程论文或毕业论文参考文献
  • 文献调研场景:系统性综述、Meta 分析等需要批量下载论文的研究阶段
  • 个人知识管理用户:配合 Obsidian、Zotero 等工具构建本地文献库

使用风险

1. 法律风险:下载受版权保护的内容可能违反当地法律,部分国家/地区对 Sci-Hub 访问有明确限制。
2. 注入安全隐患:DOI 参数通过 f-string 直接拼接 URL,未完全 URL 编码,存在构造恶意请求的理论可能。

3. 文件系统风险:文件名清理逻辑简单(仅替换 /\),路径遍历防护不足;临时文件使用固定名称,多进程场景可能冲突。

4. 供应链风险:硬编码的 Sci-Hub 域名可能被劫持或污染,下载内容完整性无校验机制。

paper-fetcher 内容

文件夹图标scripts文件夹
手动下载zip · 3.2 kB
fetch_paper.pytext/plain
请选择文件