首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从Pubmed下载全文?

如何从Pubmed下载全文?
EN

Stack Overflow用户
提问于 2016-06-14 06:28:24
回答 3查看 8.9K关注 0票数 0

我正在做一个需要与Genia语料库一起工作的项目。根据文献,Genia语料库是通过搜索Medline/Pubmed上的“转录因子”、“血细胞”和“人”这三个术语提取的。我想从Pubmed的Genia语料库中提取全文文章(这是免费的)。我尝试了许多方法,但我无法找到下载全文的方法,或XML或Pdf格式。

使用NCBI提供的Entrez utils:

  1. 我尝试使用这里提到的方法- http://www.hpa-bioinformatics.org.uk/bioruby-api/classes/Bio/NCBI/REST/EFetch/Methods.html#M002197 它使用Ruby来获取给定的PubMed ID - Bio::NCBI::REST::EFetch.pubmed(15496913)的信息。 但是,它不会返回PMID的全文。
  2. 在内部,它会打一个这样的电话- http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=pubmed&id=1372388&retmode=text&rettype=medline 但是,Ruby和上面的调用都不会返回全文。
  3. 在进一步的因特网搜索中,我发现rettype和retmode的PubMed的允许值没有获得全文的选项,在这里的表- 和/?report=objectonly中提到了这一点。
  4. 我在互联网上看到的所有示例和其他脚本都只是关于提取摘要。作者等等,但没有人讨论提取全文。
  5. 下面是我发现的另一个链接,它使用package,但只访问有关authors的信息- https://www.biostars.org/p/172296/

如何使用NCBI提供的Entrez实用程序以文本、XML或Pdf格式下载文章全文?或者我已经可以使用的脚本或网页爬虫了吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-06-14 10:07:11

您可以使用biopython获取PubMedCentral上的文章,然后从文章中获取PDF。对于所有托管在其他地方的文章,很难获得一个通用的解决方案来获得PDF。

PubMedCentral似乎不希望你大量下载文章。通过urllib的请求被阻止,但是相同的URL在浏览器中工作。

代码语言:javascript
复制
from Bio import Entrez

Entrez.email = "Your.Name.Here@example.org"


#id is a string list with pubmed IDs
#two of have a public PMC article, one does not
handle = Entrez.efetch("pubmed", id="19304878,19088134", retmode="xml")

records = Entrez.parse(handle)
#checks for all records if they have a PMC identifier
#prints the URL for downloading the PDF
for record in records:
    if record.get('MedlineCitation'):
        if record['MedlineCitation'].get('OtherID'):
           for other_id in record['MedlineCitation']['OtherID']:
               if other_id.title().startswith('Pmc'):
                   print('http://www.ncbi.nlm.nih.gov/pmc/articles/%s/pdf/' % (other_id.title().upper()))
票数 3
EN

Stack Overflow用户

发布于 2018-04-12 10:04:30

我也在用红宝石解决同样的问题。到目前为止,通过使用红宝石,我取得了一定的成功:

  1. 使用eutils中的Mechanize+esearch获取公共搜索的XML,然后使用机械化/Nokogiri解析来自XML的PMID
  2. 使用Mechanize+ID转换器将PMID转换为PMCID(如果可用)。如果您真的只对PMC上可用的论文感兴趣,您也可以设置搜索以返回PMCID。
  3. 一旦您有了PMCID,您可以使用机械化访问网页,点击pdf点击页面,并使用机械化保存文件。

这绝不是直截了当的,但仍然没有那么糟糕。有一个创业板声称做同样的(https://github.com/billgreenwald/Pubmed-Batch-Download)。我计划很快检验一下。

票数 0
EN

Stack Overflow用户

发布于 2022-11-23 08:54:52

如果您希望通过XML ID或PMC访问JSON或PubMed,那么您希望使用"BioC API“来访问PubMed Central (PMC)的开放访问文章。

(见https://www.ncbi.nlm.nih.gov/research/bionlp/APIs/BioC-PMC/ )

这里是一个代码-示例

代码语言:javascript
复制
https://www.ncbi.nlm.nih.gov/research/bionlp/RESTful/pmcoa.cgi/BioC_xml/19088134/ascii
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37804479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档