You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Elsevier Article Retrieval API获取论文全文

解决Elsevier Article Retrieval API获取论文全文不全问题

问题根因

  • 你声明的view=FULL参数未实际拼接到请求URL中,API默认仅返回基础元数据,不会返回完整全文内容
  • 原代码中query参数前缀使用了&,该符号仅用于拼接多参数,第一个参数前缀需要用?
  • 未做请求状态校验,无法判断是权限问题、参数问题还是网络问题导致返回内容不全

修正后的代码

import httpx

def scopus_paper_fulltext(paper_doi, apikey):
    headers = {
        "X-ELS-APIKey": apikey,
        "Accept": "text/xml"
    }
    timeout = httpx.Timeout(10.0, connect=60.0)
    client = httpx.Client(timeout=timeout, headers=headers)
    # 正确拼接view参数到URL
    url = f"https://api.elsevier.com/content/article/doi/{paper_doi}?view=FULL"
    r = client.get(url)
    # 先校验请求状态
    if r.status_code != 200:
        print(f"请求失败,状态码:{r.status_code},错误信息:{r.text}")
        return None
    return r.text

# 调用示例(myapikey替换为你自己的API密钥)
y = scopus_paper_fulltext('10.1016/j.solmat.2021.111326', myapikey)
print(y)

其他常见问题排查

  • 如果返回状态码为403:说明你的APIKey没有该论文的全文访问权限,需确认你所在机构是否订阅了对应期刊的API全文权限
  • 如果需要获取PDF格式全文:将Accept头修改为application/pdf,之后将响应的r.content写入本地.pdf文件即可
  • 如果返回状态码为429:说明请求频率超出API限制,降低请求频率即可,一般建议单密钥请求频率不超过3次/秒

内容的提问来源于stack exchange,提问作者Fighting

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 17:57:03