Paper Download
将论文下载到当前工作目录的 papers/ 下。
arXiv 论文
优先下载 .tex 源文件(可读性远优于 PDF):
mkdir -p papers/{arxiv_id}
curl -L "https://arxiv.org/src/{arxiv_id}" | tar -xz -C papers/{arxiv_id}
如果 tar 解压失败(部分论文只提供 PDF),回退到 PDF:
curl -L -o papers/{arxiv_id}.pdf "https://arxiv.org/pdf/{arxiv_id}"
arXiv 限速:连续下载时每篇间隔 3 秒(
sleep 3)。
DOI 论文(通过 Unpaywall)
查询开放获取链接,有则下载,无则跳过:
curl -s "https://api.unpaywall.org/v2/{doi}?email=research@openclaw.ai" | \
python3 -c "
import sys, json
d = json.load(sys.stdin)
oa = d.get('best_oa_location') or {}
url = oa.get('url_for_pdf') or oa.get('url')
if url: print(url)
else: print('NO_OA', file=sys.stderr)
" | xargs -I{} curl -L -o papers/{doi_slug}.pdf "{}"
{doi_slug}= DOI 中的/替换为_,例如10.1000/xyz123→10.1000_xyz123。 非开放获取论文静默跳过,不报错。
批量下载
# 批量 arXiv
for id in 2401.12345 2403.00001 2405.67890; do
mkdir -p papers/$id
curl -L "https://arxiv.org/src/$id" | tar -xz -C papers/$id || \
curl -L -o papers/$id.pdf "https://arxiv.org/pdf/$id"
sleep 3
done
下载后
- 下载的论文 ID 应追加到
config.json的processed_ids(如果存在) - 优先读
.tex源码而非 PDF(信息更完整,公式可直接提取)