0

我正在做一个需要使用 Genia 语料库的项目。根据文献,Genia Corpus 是通过在 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)

    但是,它不会返回 PMID 的全文。

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

    但是,Ruby gem 和上述调用都不会返回全文。

  3. 在进一步的 Internet 搜索中,我发现 PubMed 的 rettype 和 retmode 允许值没有获取全文的选项,如此处的表中所述 - http://www.ncbi.nlm.nih.gov/书籍/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 格式的文章全文?或者是否已经有可用的脚本或网络爬虫可供我使用?

4

2 回答 2

3

您可以使用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()))
于 2016-06-14T10:07:11.370 回答
0

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

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

这绝不是简单的,但仍然没有那么糟糕。有一个宝石声称可以做同样的事情(https://github.com/billgreenwald/Pubmed-Batch-Download)。我计划很快测试一下。

于 2018-04-12T10:04:30.827 回答