如何从 Pubmed 下载全文?

问题描述 投票:0回答:4

我正在做一个需要使用 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 的信息 - 生物::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 gem 和上面的调用都没有返回全文。

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

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

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

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

ruby bioinformatics text-mining biopython pubmed
4个回答
3
投票

您可以使用

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

PubMedCentral 好像不想让你批量下载文章。通过

urllib
的请求被阻止,但相同的 URL 在浏览器中有效。

from Bio import Entrez

Entrez.email = "[email protected]"


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

0
投票

我正在使用 ruby 解决完全相同的问题。到目前为止,我通过使用 ruby 执行以下操作取得了一定的成功:

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

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


0
投票

如果您想通过 PubMed ID 或 PMC

XML
JSON
,那么您想使用 “BioC API” 访问 PubMed Central (PMC) Open Access 文章。

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

这里有一个代码示例

https://www.ncbi.nlm.nih.gov/research/bionlp/RESTful/pmcoa.cgi/BioC_xml/19088134/ascii

-1
投票

最后你是怎么解决的?我有一个类似的问题;我想下载 1000 篇开放获取论文、全文(或仅摘要和结论),查询“肿瘤学”和“癌症”,但到目前为止我尝试的一切都失败了。

© www.soinside.com 2019 - 2024. All rights reserved.