如何从 Pubmed 下载全文?
How to download full article text from Pubmed?
我正在做一个需要使用 Genia 语料库的项目。根据文献,Genia 语料库是通过在 Medline/Pubmed 上搜索 3 个 Mesh 术语:“转录因子”、“血细胞”和“人类”而提取的文章制成的。我想从 Pubmed 中提取 Genia 语料库中文章的全文文章(可免费获得)。我尝试了很多方法,但我无法找到以文本或 XML 或 Pdf 格式下载全文的方法。
使用 NCBI 提供的 Entrez 实用程序:
我已经尝试使用此处提到的方法 -
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 的全文。
在内部,它会这样调用 -
http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=pubmed&id=1372388&retmode=text&rettype=medline
但是,Ruby gem 和上面的调用都没有 return 全文。
在进一步的互联网搜索中,我发现 PubMed 的 rettype 和 retmode 允许值没有获取全文的选项,如 table 此处所述 -
http://www.ncbi.nlm.nih.gov/books/NBK25499/table/chapter4.T._valid_values_of__retmode_and/?report=objectonly
我在网上看到的所有例子和其他脚本都只是提取摘要。作者等 none 讨论提取全文。
这是我发现的另一个 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:
执行以下操作取得了一定的成功
- 使用 eutils 的 Mechanize+esearch 获取你的 pubmed 搜索的 XML,然后使用 Mechanize/Nokogiri 从 XML
解析 PMID
- 使用 Mechanize+ID 转换器将 PMID 转换为 PMCID(如果可用)。如果您真的只对 PMC 上可用的论文感兴趣,您也可以将电子搜索设置为 return PMCID。
- 获得 PMCID 后,您可以使用 Mechanize 访问网页,点击 pdf 点击页面,然后使用 Mechanize 保存文件。
这绝不是直截了当的,但还算不错。有一个 gem 声称做同样的事情 (https://github.com/billgreenwald/Pubmed-Batch-Download)。我打算尽快测试一下。
我正在做一个需要使用 Genia 语料库的项目。根据文献,Genia 语料库是通过在 Medline/Pubmed 上搜索 3 个 Mesh 术语:“转录因子”、“血细胞”和“人类”而提取的文章制成的。我想从 Pubmed 中提取 Genia 语料库中文章的全文文章(可免费获得)。我尝试了很多方法,但我无法找到以文本或 XML 或 Pdf 格式下载全文的方法。
使用 NCBI 提供的 Entrez 实用程序:
我已经尝试使用此处提到的方法 - 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 的全文。
在内部,它会这样调用 - http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=pubmed&id=1372388&retmode=text&rettype=medline
但是,Ruby gem 和上面的调用都没有 return 全文。
在进一步的互联网搜索中,我发现 PubMed 的 rettype 和 retmode 允许值没有获取全文的选项,如 table 此处所述 - http://www.ncbi.nlm.nih.gov/books/NBK25499/table/chapter4.T._valid_values_of__retmode_and/?report=objectonly
我在网上看到的所有例子和其他脚本都只是提取摘要。作者等 none 讨论提取全文。
这是我发现的另一个 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:
执行以下操作取得了一定的成功- 使用 eutils 的 Mechanize+esearch 获取你的 pubmed 搜索的 XML,然后使用 Mechanize/Nokogiri 从 XML 解析 PMID
- 使用 Mechanize+ID 转换器将 PMID 转换为 PMCID(如果可用)。如果您真的只对 PMC 上可用的论文感兴趣,您也可以将电子搜索设置为 return PMCID。
- 获得 PMCID 后,您可以使用 Mechanize 访问网页,点击 pdf 点击页面,然后使用 Mechanize 保存文件。
这绝不是直截了当的,但还算不错。有一个 gem 声称做同样的事情 (https://github.com/billgreenwald/Pubmed-Batch-Download)。我打算尽快测试一下。