用途
该技能为 bioRxiv 预印本服务器提供基于 Python 的检索工具,用于搜索和获取生命科学领域的预印本。适用于检索特定研究领域的最新预印本、追踪特定作者的发表记录、开展系统性文献综述、分析一段时间内的研究趋势、获取用于引文管理的元数据、下载预印本 PDF 用于分析,以及按 bioRxiv 学科分类筛选论文。
主要能力
关键词检索
在标题、摘要或作者列表中检索包含特定关键词的预印本。默认在标题和摘要中检索关键词,可通过 --search-fields 自定义检索字段。
python scripts/biorxiv_search.py \
--keywords "CRISPR" "gene editing" \
--start-date 2024-01-01 \
--end-date 2024-12-31 \
--output results.json
带分类筛选:
python scripts/biorxiv_search.py \
--keywords "neural networks" "deep learning" \
--days-back 180 \
--category neuroscience \
--output recent_neuroscience.json
作者检索
查找某位作者在指定日期范围内的所有论文。若未指定日期,默认检索最近一年。
python scripts/biorxiv_search.py \
--author "Smith" \
--start-date 2023-01-01 \
--end-date 2024-12-31 \
--output smith_papers.json
日期范围检索
获取特定日期范围内发布的所有预印本,也可使用 --days-back 快捷方式指定最近若干天。
python scripts/biorxiv_search.py \
--days-back 30 \
--output last_month.json
按 DOI 获取论文详情
检索特定预印本的详细元数据,支持完整的 DOI URL。
python scripts/biorxiv_search.py \
--doi "10.1101/2024.01.15.123456" \
--output paper_details.json
PDF 下载
下载任意预印本的全文 PDF。
python scripts/biorxiv_search.py \
--doi "10.1101/2024.01.15.123456" \
--download-pdf paper.pdf
批量处理时,可从检索结果 JSON 中提取 DOI 并逐个下载:
import json
from biorxiv_search import BioRxivSearcher
with open('results.json') as f:
data = json.load(f)
searcher = BioRxivSearcher(verbose=True)
for i, paper in enumerate(data['results'][:10]):
doi = paper['doi']
searcher.download_pdf(doi, f"papers/paper_{i+1}.pdf")
有效分类
可按以下 bioRxiv 学科分类筛选检索:animal-behavior-and-cognition、biochemistry、bioengineering、bioinformatics、biophysics、cancer-biology、cell-biology、clinical-trials、developmental-biology、ecology、epidemiology、evolutionary-biology、genetics、genomics、immunology、microbiology、molecular-biology、neuroscience、paleontology、pathology、pharmacology-and-toxicology、physiology、plant-biology、scientific-communication-and-education、synthetic-biology、systems-biology、zoology。
输出格式
所有检索返回结构化 JSON,包含 query(检索条件)、result_count(结果数量)和 results(结果列表)三个部分。每条结果包含 doi、title、authors、author_corresponding、author_corresponding_institution、date、version、type、license、category、abstract、pdf_url、html_url、jatsxml、published 等字段。
使用方式
文献综述工作流
先进行宽泛的关键词检索并输出 JSON,读取结果查看论文数量与基本信息,再针对选定的 DOI 下载论文。
趋势分析
按时间跨度检索某一关键词(如 machine learning)在特定分类(如 bioinformatics)下的论文,随后分析结果的时间分布。
作者追踪
对多位作者分别执行作者检索,输出各自的论文 JSON。
Python API 用法
可直接导入 BioRxivSearcher 类进行更复杂的工作流:
from scripts.biorxiv_search import BioRxivSearcher
searcher = BioRxivSearcher(verbose=True)
keywords_papers = searcher.search_by_keywords(
keywords=["CRISPR", "gene editing"],
start_date="2024-01-01",
end_date="2024-12-31",
category="genomics"
)
author_papers = searcher.search_by_author(
author_name="Smith",
start_date="2023-01-01",
end_date="2024-12-31"
)
paper = searcher.get_paper_details("10.1101/2024.01.15.123456")
success = searcher.download_pdf(
doi="10.1101/2024.01.15.123456",
output_path="paper.pdf"
)
formatted = searcher.format_result(paper, include_abstract=True)
结果限制与摘要排除
可通过 --limit 限制返回结果数量;在 Python API 中可通过 include_abstract=False 在仅需元数据时排除摘要以提升速度。
与下游分析集成
检索结果 JSON 可转换为 pandas DataFrame 进行分析,例如统计论文数量、日期范围、按作者计数并导出 CSV。
最佳实践
- 使用合适的日期范围:范围越小返回越快;长时间跨度的关键词检索可拆分为多次查询。
- 尽量使用
--category过滤,以减少数据传输并提升检索精度。 - 注意速率限制:脚本已内置请求间隔(0.5 秒);大规模数据采集时应额外增加延迟。
- 缓存结果:将检索结果保存为 JSON 文件,避免重复调用 API。
- 版本追踪:预印本可能有多个版本,version 字段指示返回的版本,PDF URL 包含版本号。
- 优雅处理错误:检查输出 JSON 中的 result_count,空结果可能意味着日期范围问题或 API 连接问题。
- 调试时使用
--verbose查看 API 请求与响应的详细日志。
测试
先安装依赖:
uv pip install requests
运行测试:
python tests/test_biorxiv_search.py
测试套件验证初始化、日期范围检索、分类筛选、关键词检索、DOI 查询、结果格式化、区间检索等功能。
参考文档
详细 API 规范、端点文档和响应模式见 references/api_reference.md,包含完整 API 端点规范、响应格式细节、错误处理模式、速率限制指南和高级检索模式。
限制
资料未提供该技能的具体平台支持范围、性能上限或收费信息。部分测试在特定日期范围或分类下未找到论文时会显示警告,属正常现象,不代表失败。