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

如何为PubMed/Entrez ESearch API添加文献类型等筛选条件?

如何通过PubMed API筛选特定文献类型或物种

你遇到的问题是因为PubMed网页端的筛选参数格式和API端不兼容,网页里的pubt.meta-analysis不能直接放到API的filter参数里,得用API要求的格式来实现筛选。下面给你两种可行的解决方法:

方法一:在检索词中直接加入限定符

PubMed检索语法支持在query里通过[限定符]指定筛选条件,比如文献类型用[pt](publication type的缩写),物种用[MeSH Terms]或[Species]。

比如要筛选和cancer相关的meta分析,把query改成:

query = "cancer AND meta-analysis[pt]"

如果要筛选人类相关文献,可写成:

query = "cancer AND human[MeSH Terms]"

修改后的完整代码:

import requests
import json

db = 'pubmed'
domain = 'https://eutils.ncbi.nlm.nih.gov/entrez/eutils'  
# 加入meta分析的限定符
query = "cancer AND meta-analysis[pt]"
retmode='json'

queryLinkSearch = f'{domain}/esearch.fcgi?db={db}&retmode={retmode}&term={query}&sort=relevance'  
response = requests.get(queryLinkSearch)
pubmedJson = response.json()

print(pubmedJson)

方法二:使用API的filter参数

API的filter参数格式是键:值,而非网页里的键.值。比如文献类型的键是pubt,对应meta分析的值是meta-analysis,参数要写成&filter=pubt:meta-analysis。

筛选meta分析的完整请求链接示例:

queryLinkSearch = f'{domain}/esearch.fcgi?db={db}&retmode={retmode}&term={query}&sort=relevance&filter=pubt:meta-analysis'

如果要筛选人类物种,filter参数可写成&filter=species:human。

常用筛选参考

  • 临床试验:clinical trial[pt](query方式)或filter=pubt:clinical-trial(API filter方式)
  • 综述:review[pt]或filter=pubt:review
  • 小鼠物种:mouse[MeSH Terms]或filter=species:mouse

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 21:45:00