如何从 Pubmed 下载全文?

How to download full article text from Pubmed?

我正在做一个需要使用 Genia 语料库的项目。根据文献,Genia 语料库是通过在 Medline/Pubmed 上搜索 3 个 Mesh 术语:“转录因子”、“血细胞”和“人类”而提取的文章制成的。我想从 Pubmed 中提取 Genia 语料库中文章的全文文章(可免费获得)。我尝试了很多方法,但我无法找到以文本或 XML 或 Pdf 格式下载全文的方法。

使用 NCBI 提供的 Entrez 实用程序:

  1. 我已经尝试使用此处提到的方法 - http://www.hpa-bioinformatics.org.uk/bioruby-api/classes/Bio/NCBI/REST/EFetch/Methods.html#M002197

    像这样使用 Ruby gem Bio 来获取给定 PubMed ID 的信息 - Bio::NCBI::REST::EFetch.pubmed(15496913)

    但是,它没有 return PMID 的全文。

  2. 在内部,它会这样调用 - http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=pubmed&id=1372388&retmode=text&rettype=medline

    但是,Ruby gem 和上面的调用都没有 return 全文。

  3. 在进一步的互联网搜索中,我发现 PubMed 的 rettype 和 retmode 允许值没有获取全文的选项,如 table 此处所述 - http://www.ncbi.nlm.nih.gov/books/NBK25499/table/chapter4.T._valid_values_of__retmode_and/?report=objectonly

  4. 我在网上看到的所有例子和其他脚本都只是提取摘要。作者等 none 讨论提取全文。

  5. 这是我发现的另一个 link,它使用 Python 包 Bio,但只访问有关作者的信息 - https://www.biostars.org/p/172296/

如何使用 NCBI 提供的 Entrez utils 下载 text 或 XML 或 Pdf 格式的文章全文?或者是否已经有可用的脚本或网络爬虫可供我使用?

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

PubMedCentral 好像不想让你批量下载文章。通过 urllib 的请求被阻止,但同样的 URL 从浏览器中工作。

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()))

我正在使用 ruby 解决完全相同的问题。到目前为止,我通过 ruby:

执行以下操作取得了一定的成功
  1. 使用 eutils 的 Mechanize+esearch 获取你的 pubmed 搜索的 XML,然后使用 Mechanize/Nokogiri 从 XML
  2. 解析 PMID
  3. 使用 Mechanize+ID 转换器将 PMID 转换为 PMCID(如果可用)。如果您真的只对 PMC 上可用的论文感兴趣,您也可以将电子搜索设置为 return PMCID。
  4. 获得 PMCID 后,您可以使用 Mechanize 访问网页,点击 pdf 点击页面,然后使用 Mechanize 保存文件。

这绝不是直截了当的,但还算不错。有一个 gem 声称做同样的事情 (https://github.com/billgreenwald/Pubmed-Batch-Download)。我打算尽快测试一下。