Skip to main content
Glama

Gleaner

多源学术文献采集(Skill + CLI)。把「检索 → 下载全文 → 归一化元数据」交给 Agent / 本机命令一键完成。入口是 gleaner_cli.py~/.grok/skills/gleaner/

Authors: liuqiaodongdong and Grok
仓库:https://github.com/liuqiaodongdong/gleaner

来源

CLI

说明

产物

中国知网 CNKI

preparecnki-list / cnki

关键词 / 专业式 / 期刊分级 L1–L4cnki_journal_tiers.json

PDF / CAJ / 题录

Elsevier / ScienceDirect

els

官方 API + 期刊白名单

Markdown(+ XML)

国际文献

intl

OpenAlex 发现 → OA / NBER / Sci-Hub / 可选 CARSI

PDF

输出目录:corpus/<批次>/metadata.csv + papers/


快速开始

1. 安装

git clone https://github.com/liuqiaodongdong/gleaner.git
cd gleaner

python -m venv .venv
# Windows
.venv\Scripts\activate
# macOS / Linux
# source .venv/bin/activate

pip install -r requirements.txt
# 把 Skill 注册到 ~/.grok、~/.cursor、~/.codex(写入 .gleaner_root)
python gleaner_cli.py install-skill
# 若不用系统 Edge 跑知网,再执行:
# playwright install chromium

需要 Python 3.11+。知网线建议 Windows + 系统 Edge。

Agent 装机:用户说「安装项目」或「安装 skill」都是同一条——第一条命令必须是 git clone,再 pipinstall-skill。只把 SKILL.md 拷到 ~/.cursor/skills 不算安装。没有仓库时可跑 skill/gleaner/scripts/bootstrap.py(会自己 clone)。约定见 skill/gleaner/SKILL.md

2. 准备账号(按需)

用途

是否需要

申请

知网全文

机构网络/代理 + 超级鹰(验证码 9602)

代理可用校园网/VPN;超级鹰需积分

Elsevier

官方 API Key(免费学术额度)

见下方;完整版 docs/ELSEVIER_API.md

国际 OA 线

通常不需要

首次使用请先跑:

python gleaner_cli.py status

它会检查缺什么并给出配置步骤。

Elsevier 官方 API Key(els 必需)

本项目只使用 Elsevier Developer Portal 官方 API,不要使用第三方 Key、破解或网页爬取代替。

  1. 学校/机构邮箱注册/登录:https://account.elsevier.com/

  2. 打开 https://dev.elsevier.com/Create / Manage API Key

  3. Create API Key(Label 如 gleaner-local;Website 本地可用 http://localhost

  4. 将 Key 写入 .envELSEVIER_API_KEY,或单行写入 acq/data/.elsevier_key

  5. 再跑 python gleaner_cli.py status 确认 elsevier.ready

说明:Key 负责 API 鉴权与配额;订阅全文仍依赖你的机构权益。配额见 api_key_settings。逐步图与 Agent 话术见 docs/ELSEVIER_API.md

3. 配置环境(.env / Skill)

复制 .env.example.env,填写:

ELSEVIER_API_KEY=your_key
CJY_USER=chaojiying_user
CJY_PASS=chaojiying_pass
CJY_SOFTID=your_softid
ACQ_PROXY=http://127.0.0.1:PORT
  • ACQ_PROXY 按本机机构/校园网代理填写(端口以客户端显示为准)。也可不写,程序会尝试读取 Windows 系统代理

  • 若电脑已在校园网 / 机构 VPN 内、浏览器能直接下知网,通常不必再设 ACQ_PROXY

  • 推荐设置 GLEANER_ROOT 指向本仓库根

  • 用户 Skill:在仓库根跑 python gleaner_cli.py install-skill(不要手拷目录)

4. 知网登录(首次必做)

机构会话写在 cookies.json(已 gitignore)。没有这份文件就不要跑 cnki / cnki-list,冷启动下不了全文,只会空烧超级鹰。

录入由 Agent 自己跑 python login.py(脚本里超级鹰 9602 自动过滑块并写盘)。不要只跑 login-hint 就停,不要让用户手拖或从浏览器复制 cookie。不用个人知网账号。会弹出有头浏览器。仅第一次没有文件才加 ACQ_ALLOW_COLD_LOGIN=1。之后批次间热启动,不要裸开。

set ACQ_BROWSER_CHANNEL=msedge
# 已有 cookies.json(续批次,推荐)
python login.py
# 仅首次没有 cookie:
set ACQ_ALLOW_COLD_LOGIN=1
python login.py

Related MCP server: Paper Search MCP

CLI 命令

命令

作用

install-skill

skill/gleaner 注册到 Grok / Cursor / Codex,并写入 .gleaner_root

status

检查配置是否齐全,返回待办步骤(建议先跑

prepare

Agent 提供概念组 → 生成 L1–L4 专业检索式(LY 刊滤,不启浏览器)

cnki

知网全文;支持 --level L1..L4 + --search-md 分级采集

cnki-list

知网仅题录;同样支持分级

els

Elsevier 白名单刊检索 + 全文转 MD

intl

国际论文发现与下载

score

查询超级鹰积分

sources

各源状态与配额摘要

login-hint

知网登录 / cookie 提示

Agent 约定见 AGENTS.md:未配置完成时会引导你补齐,而不是盲目采集。

CNKI 分级:同义发散由 Agent 完成;prepare 只做确定性拼式。刊表:acq/data/cnki_journal_tiers.json(tier1/2/3)。

调用示例

python gleaner_cli.py status

# 1) Agent 拓展概念组后建式(不启浏览器)
python gleaner_cli.py prepare \
  --topic "数字经济" \
  --concept-groups '[{"name":"数字经济","keywords":["数字经济","数字化","数据要素"]}]' \
  --year-from 2015

# 2) 先题录看 TOTAL,再全文
python gleaner_cli.py cnki-list --level L1 --search-md "<prepare 返回的 search_md>" --num 100
# 全文必须分批:每批 40–60 随机(省略 --num),同一 --out-name 续传;批间热启动 login.py
python gleaner_cli.py cnki --level L1 --search-md "<search_md>" --out-name demo_topic_L1

# 兼容:无分级
python gleaner_cli.py cnki --query "数字经济" --num 10 --out-name demo_cnki

python gleaner_cli.py els \
  --query '("digital economy" OR digitalization) AND innovation' \
  --num 10 --tier 1+2 --year-from 2020

python gleaner_cli.py intl --query "minimum wage employment" --num 15 --year-from 2018

也可用 Skill 包装(先安装,见下方):

pwsh "$env:USERPROFILE\.grok\skills\gleaner\scripts\gleaner.ps1" status

安装用户 Skill

必须先有本仓库。 用户只说「安装 skill」时,Agent 仍要先 clone,禁止只拷 SKILL.md

# 还没有仓库:
git clone https://github.com/liuqiaodongdong/gleaner.git
cd gleaner
python -m pip install -r requirements.txt
# 或:python skill\gleaner\scripts\bootstrap.py

# 仓库已在,注册到 ~/.grok、~/.cursor、~/.codex:
python gleaner_cli.py install-skill
$env:GLEANER_ROOT = (Resolve-Path .).Path

install-skill 会在每份 Skill 副本里写入 .gleaner_root 指向本仓库。当前会话仍建议设 GLEANER_ROOT。也可用 GLEANER_PYTHON 指定解释器。


工作原理(简)

Agent / 终端
  └── gleaner_cli.py
        ├── CNKI  → Playwright + 代理 + 超级鹰
        ├── Elsevier → REST API + API Key
        └── 国际 → OpenAlex / OA / Sci-Hub / CARSI
              └── corpus/<批次>/
  • 知网:无头浏览器(默认 Edge),验证码走超级鹰 9602

  • Elsevier:Search API + Article Retrieval,全文 XML 转结构化 Markdown

  • 国际/Elsevier 的 HTTP 请求默认绕过系统代理(trust_env=False),避免部分代理导致的 SSL 错误;知网取机构权限时则使用 ACQ_PROXY 或系统代理

  • 长任务由 CLI 子进程执行,默认不设硬超时;日志见 corpus/*_run.log


底层脚本(调试用)

python run_batch.py params.json
python run_els_batch.py els_params.json
python run_intl_batch.py intl_params.json

参数字段见各脚本文件头注释。统一入口仍推荐 gleaner_cli.py


项目结构

gleaner_cli.py       # 统一 CLI
skill/gleaner/       # 用户 Skill 源(install-skill 注册;scripts/bootstrap.py 无仓库时会 clone)
acq/                 # 采集核心与各源 adapter
  cli_support.py     # ROOT / env / 子进程 / 摘要
  setup_check.py     # status 实现
  sources/           # cnki 相关外:oa / scihub / els / openalex …
run_*.py             # 各线批量入口
browser.py / captcha.py / login.py …
tests/
AGENTS.md            # 给 Agent 的使用约定(Skill+CLI)

故障排查

现象

处理

setup_incomplete / 缺密钥

status,按返回步骤配置 .env

Elsevier Key 缺失

docs/ELSEVIER_API.md 在 dev.elsevier.com 申请

知网无权限 / 打不开

检查是否在机构网/VPN,或 ACQ_PROXY 端口是否与本机代理软件一致

超级鹰相关报错

检查 CJY_USER / CJY_PASS / CJY_SOFTID 与积分(score

cookie / 登录失败

login-hint → 热启动 python login.py(仅首次无 cookie 才 ACQ_ALLOW_COLD_LOGIN=1

Elsevier 0 篇

检索式是否过窄;机构是否订阅该刊全文(Key alone 不等于全库 PDF)


License

MIT © liuqiaodongdong

本仓库代码按 MIT 许可开源:可自由使用、修改、分发(含闭源商用),保留版权与许可声明即可。

使用声明(与许可证独立)

  • 请遵守知网、Elsevier 等平台服务条款,仅在合法授权(机构订阅等)范围内使用。

  • 验证码打码、第三方镜像等能力由你自行承担合规风险;MIT 许可代码 ≠ 授权你违反第三方 ToS 或版权法

  • 本软件按「现状」提供,作者不对滥用、封禁或数据合规问题负责。

Issues / PR 欢迎:https://github.com/liuqiaodongdong/gleaner

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    C
    maintenance
    Enables searching, downloading, and reading academic papers from multiple platforms including arXiv, Semantic Scholar, PubMed, bioRxiv, medRxiv, IACR, Google Scholar, RePEc/IDEAS, and Sci-Hub with PDF to Markdown conversion.
    29
    7
  • A
    license
    B
    quality
    B
    maintenance
    Enables searching and downloading academic papers from 14 platforms including arXiv, PubMed, Google Scholar, Web of Science, Springer, and Sci-Hub with unified data format and intelligent rate limiting.
    19
    931
    182
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables searching, downloading, and exporting academic papers from 20+ scholarly sources including arXiv, PubMed, and Semantic Scholar. Supports multi-source concurrent search, citation network tracing, and export to CSV, RIS, and BibTeX.
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/liuqiaodongdong/gleaner'

If you have feedback or need assistance with the MCP directory API, please join our Discord server