从 NCBI 书籍部分刮取数据?

Posted

技术标签:

【中文标题】从 NCBI 书籍部分刮取数据?【英文标题】:Scrape data from NCBI books section? 【发布时间】:2020-10-24 06:45:49 【问题描述】:

我目前正在编写一个程序,该程序需要我从 NCBI 中抓取文章。

我正在使用 Entrez 实用程序来执行此操作 (https://www.ncbi.nlm.nih.gov/books/NBK25497/)。

我已经想出了如何使用 PubMed 数据执行此操作,即使用 handle = Entrez.efetch(db='pubmed', id=pmid, retmode='text', rettype='abstract')

但是,我想从 NCBI 的书籍部分抓取数据,因为 pubmed 部分包含不完整的文章(例如比较 https://pubmed.ncbi.nlm.nih.gov/20301533/ 与 https://www.ncbi.nlm.nih.gov/books/NBK1359/)。

我有一个文本文件中所有 GeneReviews ID(例如 NB1359、NB1400 等)的列表,但我不确定如何抓取这些数据,因为handle = Entrez.esearch(db='books', term="NB1359", retmode='text') 不会返回文章中的文本。

【问题讨论】:

【参考方案1】:

我也没有看到使用Entrez.esearch 的方法,但我只会下载页面的可打印版本并直接解析:

import requests
from bs4 import BeautifulSoup

genereview_ids = ['NBK1359', 'NBK1400']

for genereview_id in genereview_ids:
  url = f"https://www.ncbi.nlm.nih.gov/books/genereview_id/?report=printable"
  r = requests.get(url)
  html_doc = r.text
  soup = BeautifulSoup(html_doc, 'html.parser')
  print(soup.find('meta', 'name': 'description')['content'])

输出:

The purpose of this overview is to increase the awareness of clinicians regarding congenital diaphragmatic hernia and its genetic causes and management.
Cystinosis comprises three allelic phenotypes:

【讨论】:

以上是关于从 NCBI 书籍部分刮取数据?的主要内容,如果未能解决你的问题,请参考以下文章

通过仅下载网页的相关部分来刮取标题

NCBI SRA数据库

什么是NCBI。有什么用途?

如何从NCBI下载基因组数据

在日志模式中提供多个容器名称以从中刮取数据

如何在genbank查找某个细菌的基因序列?