[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-11513":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":8,"htmlUrl":8,"language":9,"languages":8,"totalLinesOfCode":8,"stars":10,"forks":11,"watchers":12,"openIssues":13,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":15,"stars7d":16,"stars30d":17,"stars90d":14,"forks30d":14,"starsTrendScore":18,"compositeScore":19,"rankGlobal":8,"rankLanguage":8,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":23,"hasPages":21,"topics":24,"createdAt":8,"pushedAt":8,"updatedAt":25,"readmeContent":26,"aiSummary":27,"trendingCount":14,"starSnapshotCount":14,"syncStatus":28,"lastSyncTime":29,"discoverSource":30},11513,"scansci-pdf","Rimagination\u002Fscansci-pdf","Rimagination",null,"Python",227,33,28,7,0,24,66,195,72,4.59,"Apache License 2.0",false,"master",true,[],"2026-06-12 02:02:32","# ScanSci PDF\n\n[![PyPI version](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fscansci-pdf)](https:\u002F\u002Fpypi.org\u002Fproject\u002Fscansci-pdf\u002F)\n[![Python](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fpyversions\u002Fscansci-pdf)](https:\u002F\u002Fpypi.org\u002Fproject\u002Fscansci-pdf\u002F)\n[![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Apache--2.0-blue)](LICENSE)\n[![MCP](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FMCP-compatible-green)](https:\u002F\u002Fmodelcontextprotocol.io)\n\n> 学术论文下载 MCP 服务器 — 13+ 数据源、100+ 高校 WebVPN、并行竞速下载引擎\n\n---\n\n## 为什么选择 ScanSci PDF？\n\n- **一个工具，13+ 数据源** — arXiv、Sci-Hub、LibGen、Unpaywall、OpenAlex、Semantic Scholar、DOAJ、EuropePMC、CORE、PMC、出版商直链等，自动选择最快可用源\n- **100+ 高校 WebVPN** — 通过中国高校机构代理访问付费论文全文，CAS 认证，密码不经过工具\n- **CARSI 联邦认证** — 支持 ScienceDirect、Springer、Wiley、IEEE、Taylor & Francis、Nature 等出版商的机构登录\n- **Cloudflare 绕过** — curl_cffi TLS 指纹模拟 + FlareSolverr 浏览器引擎双层策略\n- **并行竞速引擎** — 多数据源同时尝试，首个成功立即返回，无需逐个等待\n- **智能列表解析** — 支持 APA 引文、BibTeX、DOI 列表，自动补全缺失 DOI 后批量下载\n- **自动重命名** — PDF 自动重命名为 `作者年份_标题.pdf` 格式\n- **引文导出** — 一键获取 BibTeX、RIS、EndNote 格式引文\n- **网络诊断** — 自动检测 DNS 封锁、代理配置、Tor 连接问题，给出针对性修复建议\n\n---\n\n## 快速开始\n\n### 安装\n\n```bash\npip install scansci-pdf\n```\n\n### MCP 配置\n\n在任何支持 MCP 的 Agent 中添加以下配置即可使用：\n\n```json\n{\n  \"mcpServers\": {\n    \"scansci-pdf\": {\n      \"command\": \"scansci-pdf\",\n      \"args\": [\"run\"]\n    }\n  }\n}\n```\n\n支持 MCP 的 Agent 和客户端：\n\n| 客户端 | 说明 |\n|--------|------|\n| Claude Desktop | Anthropic 官方桌面客户端 |\n| Claude Code | Anthropic 命令行 Agent |\n| Cursor | AI 代码编辑器 |\n| Windsurf | AI 代码编辑器 |\n| Cline | VS Code 插件 Agent |\n| Cherry Studio | 多模型桌面客户端 |\n| OpenClaw | MCP 客户端 |\n| 任何 MCP 兼容客户端 | MCP 是开放协议，任何实现均可接入 |\n\n\u003Cdetails>\n\u003Csummary>HTTP 模式（远程\u002FWeb 调用）\u003C\u002Fsummary>\n\n适用于远程部署或不支持 stdio 的场景：\n\n```bash\nscansci-pdf run --mode streamable_http --host 0.0.0.0 --port 8000\n```\n\u003C\u002Fdetails>\n\n### 检查环境\n\n```bash\nscansci-pdf check\n```\n\n---\n\n## 工作原理\n\n下载一篇论文时，ScanSci PDF 会同时启动多个数据源，按优先级分层竞速：\n\n```\nTier 1 (4s)  ─ 出版商直链（OA\u002F机构访问）\nTier 2 (5s)  ─ OpenAlex \u002F Unpaywall \u002F DOAJ\nTier 3 (8s)  ─ EuropePMC \u002F CORE \u002F PMC \u002F arXiv\nTier 4 (25s) ─ LibGen \u002F Sci-Hub（带 FlareSolverr 绕过）\nTier 5 (20s) ─ WebVPN \u002F CARSI 机构代理\n```\n\n首个成功下载的源立即返回，其余自动取消。自适应评分系统会根据历史成功率和延迟动态调整源的优先级。\n\n---\n\n## MCP 工具\n\n### 论文下载\n\n| 工具 | 描述 |\n|------|------|\n| `scansci_pdf_smart_download` | **推荐** 零配置下载，自动尝试所有源 + Tor |\n| `scansci_pdf_download` | 下载单篇论文（完整参数控制） |\n| `scansci_pdf_batch_download` | 批量下载多篇论文 |\n| `scansci_pdf_resolve_and_download` | 解析列表 → 补全 DOI → 批量下载 |\n\n### 付费墙登录\n\n| 工具 | 描述 |\n|------|------|\n| `scansci_pdf_login` | **推荐** 统一登录：输入 DOI 自动识别出版商并打开浏览器 SSO |\n| `scansci_pdf_camofox_login` | camofox 持久化浏览器登录 |\n| `scansci_pdf_camofox_status` | 检查 camofox-browser 状态 |\n| `scansci_pdf_camofox_import_cookies` | 导入 Netscape cookie 到 camofox |\n| `scansci_pdf_import_browser_cookies` | 打开浏览器捕获登录 cookie |\n\n### 搜索与解析\n\n| 工具 | 描述 |\n|------|------|\n| `scansci_pdf_search` | 按关键词搜索论文（OpenAlex） |\n| `scansci_pdf_parse_list` | 解析 APA\u002FBibTeX\u002FDOI 列表文件 |\n\n### 引文管理\n\n| 工具 | 描述 |\n|------|------|\n| `scansci_pdf_citation` | 获取论文引文（BibTeX\u002FRIS\u002FEndNote） |\n| `scansci_pdf_import_bib` | 导入 .bib 文件并下载全部论文 |\n\n### 机构代理（WebVPN \u002F CARSI \u002F EZProxy）\n\n| 工具 | 描述 |\n|------|------|\n| `scansci_pdf_vpnsci_set_school` | 设置 WebVPN 学校 |\n| `scansci_pdf_vpnsci_login` | WebVPN 浏览器 CAS 认证 |\n| `scansci_pdf_vpnsci_status` | WebVPN 登录状态 |\n| `scansci_pdf_vpnsci_schools` | 搜索支持的大学 |\n| `scansci_pdf_vpnsci_test` | 测试 WebVPN 连接性 |\n| `scansci_pdf_carsi_login` | CARSI 出版商机构登录 |\n| `scansci_pdf_carsi_status` | CARSI 状态与 cookie 检查 |\n| `scansci_pdf_ezproxy_login` | EZProxy 图书馆代理登录 |\n| `scansci_pdf_ezproxy_status` | EZProxy 状态检查 |\n\n### 系统管理\n\n| 工具 | 描述 |\n|------|------|\n| `scansci_pdf_auto_setup` | 一键环境检测与自动配置 |\n| `scansci_pdf_setup_check` | 检测系统环境并给出安装建议 |\n| `scansci_pdf_health_check` | 检查所有数据源可用性与延迟 |\n| `scansci_pdf_network_diagnose` | 网络诊断 + 修复建议 |\n| `scansci_pdf_source_scores` | 各数据源历史成功率排名 |\n| `scansci_pdf_config_get` \u002F `config_set` | 查看\u002F修改配置 |\n| `scansci_pdf_cache_clear` | 清除下载缓存 |\n\n### Tor 管理\n\n| 工具 | 描述 |\n|------|------|\n| `scansci_pdf_tor_install` | 自动下载安装 Tor Expert Bundle |\n| `scansci_pdf_tor_start` | 启动内嵌 Tor SOCKS5 代理 |\n| `scansci_pdf_tor_stop` | 停止 Tor 代理 |\n\n---\n\n## 下载策略\n\n| 策略 | 描述 |\n|------|------|\n| `fastest`（默认） | 多数据源并行，最快获胜 |\n| `oa_first` | 优先开放获取，Sci-Hub 兜底 |\n| `scihub_only` | 仅使用 Sci-Hub |\n| `legal_only` | 仅使用合法数据源（不含 Sci-Hub\u002FLibGen） |\n\n---\n\n## 付费墙：机构登录\n\n### 统一登录（推荐）\n\n只需一行，自动识别出版商、打开浏览器、引导完成 SSO 登录，cookie 跨所有下载复用：\n\n```\nscansci_pdf_login(identifier=\"10.1126\u002Fscience.aec6396\")\n```\n\n`identifier` 可以是 DOI 或出版商名（`elsevier`, `wiley`, `nature`, `springer`, `ieee`, `science`, `tandfonline`, `acs`, `rsc`, `aip`, `aps`, `iop`, `oxford`, `acm`）。\n\n### WebVPN（高校代理）\n\n通过中国高校机构代理访问论文全文：\n\n```\n1. scansci_pdf_vpnsci_schools(query=\"北京\")      → 搜索学校\n2. scansci_pdf_vpnsci_set_school(school=\"你的学校\")\n3. scansci_pdf_vpnsci_login                     → 浏览器 CAS 认证\n4. scansci_pdf_vpnsci_test                      → 确认连接正常\n```\n\n支持 100+ 所高校。\n\n### CARSI（出版商联邦认证）\n\n直接通过出版商机构登录页面认证，无需 WebVPN 中转：\n\n```\n1. scansci_pdf_config_set(key=\"carsi_enabled\", value=\"true\")\n2. scansci_pdf_config_set(key=\"carsi_idp_name\", value=\"你的学校名称\")\n3. scansci_pdf_carsi_login(publisher=\"sciencedirect\")\n```\n\n支持：sciencedirect, springer, wiley, ieee, tandfonline, nature\n\n### EZProxy（图书馆代理）\n\n通过学校图书馆 EZProxy 服务访问：\n\n```\n1. scansci_pdf_config_set(key=\"ezproxy_enabled\", value=\"true\")\n2. scansci_pdf_config_set(key=\"ezproxy_login_url\", value=\"https:\u002F\u002Flibproxy.你的学校.edu.cn\u002Flogin?url={url}\")\n3. scansci_pdf_ezproxy_login\n```\n\n---\n\n## 配置参考\n\n通过 `scansci_pdf_config_set` 修改：\n\n| 配置项 | 默认值 | 说明 |\n|--------|--------|------|\n| `scihub_enabled` | `true` | 启用 Sci-Hub |\n| `download_strategy` | `fastest` | 下载策略 |\n| `output_dir` | `~\u002F.scansci-pdf\u002Fpapers` | PDF 输出目录 |\n| `auto_rename` | `true` | 自动重命名 PDF |\n| `network_proxy` | （空） | HTTP\u002FSOCKS 代理地址 |\n| `batch_workers` | `10` | 批量下载并发数 |\n| `vpnsci_enabled` | `false` | 启用 WebVPN |\n| `vpnsci_school` | （空） | WebVPN 学校名称 |\n| `carsi_enabled` | `false` | 启用 CARSI 联邦认证 |\n| `carsi_idp_name` | （空） | CARSI 机构名称 |\n| `flaresolverr_url` | `http:\u002F\u002Flocalhost:8191\u002Fv1` | FlareSolverr 服务地址 |\n| `use_tor_for_scihub` | `false` | Sci-Hub 使用 Tor |\n\n---\n\n## 高级功能（可选）\n\n以下功能为可选项，适用于特定网络环境或高级需求。\n\n### Docker 部署\n\n适用于需要将 scansci-pdf 作为长期运行服务的场景，或不想在本机安装 Python 环境的用户。Docker 容器内置 MCP 服务器和 Tor 代理，数据通过 Docker 卷持久化。\n\n```bash\ndocker compose up -d\n```\n\n| 服务 | 说明 | 端口 |\n|------|------|------|\n| `scansci-pdf` | MCP 服务器 | 8000 |\n| `tor` | Tor SOCKS5 代理 | 1080 |\n\nDocker 配置方式：\n\n```json\n{\n  \"mcpServers\": {\n    \"scansci-pdf\": {\n      \"command\": \"docker\",\n      \"args\": [\"compose\", \"-f\", \"path\u002Fto\u002Fdocker-compose.yml\", \"run\", \"--rm\", \"scansci-pdf\"]\n    }\n  }\n}\n```\n\n### Tor 匿名代理\n\nTor 用于在 Sci-Hub、LibGen 等网站被网络封锁的地区匿名访问。如果你的网络可以直连 Sci-Hub，则不需要 Tor。内嵌 Tor 会自动下载 Tor Expert Bundle（约 30MB），无需 Docker 或系统级安装。\n\n```bash\n# 首次使用：自动下载安装 Tor\nscansci_pdf_tor_install\n\n# 启动 Tor SOCKS5 代理\nscansci_pdf_tor_start\n\n# 如果 Tor 本身也被封锁（连接超时），启用 obfs4 桥接绕过\nscansci_pdf_tor_start(use_bridges=true)\n\n# 下载时通过 Tor 访问\nscansci_pdf_download(identifier=\"10.1038\u002Fnature12373\", use_tor=true)\n```\n\n二进制文件存储在 `~\u002F.scansci-pdf\u002Ftor\u002F`，不污染系统环境。\n\n### FlareSolverr（Cloudflare 绕过）\n\n当 Sci-Hub、LibGen 等站点触发 Cloudflare 防护时，FlareSolverr 可以自动绕过。需要 Docker 运行 FlareSolverr 服务：\n\n```bash\ndocker run -d -p 8191:8191 ghcr.io\u002Fflaresolverr\u002Fflaresolverr\n```\n\nScanSci PDF 会自动检测 Cloudflare 并回退到 FlareSolverr，无需手动配置。如果已安装 curl_cffi，会优先使用 TLS 指纹模拟（更快，无需 Docker）。\n\n---\n\n## 故障排查\n\n**Sci-Hub 下载失败** — 运行 `scansci_pdf_health_check(detailed=true)` 查看数据源状态。域名轮换自动处理。如果遇到 Cloudflare 防护，安装 FlareSolverr 或 curl_cffi。\n\n**Tor 连接失败** — 确认 Tor 运行在 `socks5h:\u002F\u002F127.0.0.1:1080`。如 Tor 也被封锁，使用 `scansci_pdf_tor_start(use_bridges=true)` 启用桥接。\n\n**WebVPN 登录失败** — 需要 Chrome\u002FChromeDriver。登录在你的浏览器中完成，密码不经过本工具。\n\n**下载速度慢** — 运行 `scansci_pdf_health_check(detailed=true)` 检查数据源延迟。如 Sci-Hub 在你的网络被封锁，尝试 `legal_only` 策略或配置代理。\n\n**网络问题** — 运行 `scansci_pdf_network_diagnose` 获取全面的连接诊断报告和针对性修复建议。\n\n---\n\n## 架构说明\n\n本项目采用分层架构：\n\n| 层级 | 内容 | 许可 |\n|------|------|------|\n| 公开层 | 所有 `.py` 源码、配置、文档 | Apache 2.0 |\n| 保护层 | `_core\u002F*.pyx`（Cython 源码） | 专有，不公开 |\n| 分发层 | `_core\u002F*.pyd`（编译二进制） | 随 PyPI 包分发 |\n\n从 GitHub 克隆的用户使用纯 Python 回退实现（功能相同，性能略低）。从 PyPI 安装的用户自动获得编译版本。\n\n---\n\n## 赞助者\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fqwlei328-maker\">\u003Cimg src=\"https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F257463305?v=4\" width=\"50\" height=\"50\" alt=\"qwlei328-maker\" title=\"Natasha\"\u002F>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjingqingqiu1\">\u003Cimg src=\"https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F87510394?v=4\" width=\"50\" height=\"50\" alt=\"jingqingqiu1\" title=\"jingqingqiu1\"\u002F>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fminqifeng\">\u003Cimg src=\"https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F61303605?v=4\" width=\"50\" height=\"50\" alt=\"minqifeng\" title=\"minqifeng\"\u002F>\u003C\u002Fa>\n\n---\n\n## 致谢\n\n本项目在开发过程中参考和借鉴了以下开源项目：\n\n- **[FlareSolverr](https:\u002F\u002Fgithub.com\u002FFlareSolverr\u002FFlareSolverr)** — 早期反 bot 绕过架构设计\n- **[ref-downloader](https:\u002F\u002Fgithub.com\u002Fltczding-gif\u002Fref-downloader)** — Publisher 专用下载策略（Elsevier crasolve 检测、Wiley PDFDirect、AIP loading page 等）\n- **[paper-fetch-skill](https:\u002F\u002Fgithub.com\u002FDictation354\u002Fpaper-fetch-skill)** — 论文获取 Agent Skill 设计\n- **[paper-fetcher](https:\u002F\u002Fgithub.com\u002Ffermionoid\u002Fpaper-fetcher)** — 论文下载流程参考\n- **[camoufox](https:\u002F\u002Fgithub.com\u002Fdaijro\u002Fcamoufox)** — stealth 浏览器指纹伪装引擎\n\n感谢以上项目作者的开源贡献。\n\n---\n\n## 许可证\n\n[Apache License 2.0](LICENSE)\n\n例外：`src\u002Fscansci_pdf\u002F_core\u002F` 中的 Cython 编译扩展（`.pyd`\u002F`.so`）为预编译二进制，仅通过 PyPI 分发。其 Cython 源码（`.pyx`）为专有代码，不包含在本仓库中。\n","ScanSci PDF 是一个用于学术论文下载的工具，支持通过多种数据源和高校WebVPN访问付费论文全文。其核心功能包括13+数据源（如arXiv、Sci-Hub等）自动选择最快可用源，100+中国高校WebVPN代理访问，CARSI联邦认证登录各大出版商平台，以及Cloudflare绕过技术。此外，它还具备并行竞速引擎、智能列表解析、自动重命名PDF文件、引文导出及网络诊断等功能。该工具适用于需要高效获取学术资源的研究人员、学生或任何对特定领域文献有需求的专业人士，在面对付费墙限制时尤为有用。",2,"2026-06-11 03:32:02","CREATED_QUERY"]