从 PubMed 的 HTML 页面提取标题和摘要文本(自学42天)

从 PubMed 的 HTML 页面提取标题和摘要文本


在 PubMed 摘要网页(如 http://www.ncbi.nlm.nih.gov/pubmed/18235848),可以轻松地访问相关的 HTML 源代码。 例如,这可以在 Safari 浏览器选择"Develop"→"Show Page Source"链接,或在 Firefox 菜单中选"Tools"→"Web Developer"→ "Page Source"。花几分钟探索这个页面,就会看到标题被封闭在标记<hl>和</hl>之间,而摘要文本则是<h3> Abstract</h3> <div class = ""> <p> 和</p> ,这些是关于从 PubMed 的 HTML 摘要页 中选择性提取标题和摘要内容需要知道的一些细节。

下面的示例从一个 Python 脚本打开 HTML 网页,并解析它,进而选择性提取它的某些部分(在此情况下是标题和摘要) 。

import urllib2 
import re 
pmid = '18235848' 
url = 'http://jwww.ncbi.nlm.nih.gov/pubmed?t.erm=%s'%pmid 
handler = urllib2.urlopen(url) 
html = handler.read() 
title_regexp = re.compile('<hl>.{5, 400}</h1>') 
title_text = title_regexp.search(html) 
abstract_regexp = re.compile('<h3>Abstract</h3><div class = "">cp>.{20, 3000}</p></div>') 
abstract_text = abstract_regexp.search(html) 
print('TITLE:',title_text.group()) 
print ('ABSTRACT:' , abstract_text.group())

在 urllib2 的模块中提供了一些连接一个 URL 并检索其内容的工具。 urlopen()方法用于打开 URL用于建立连接,其参数必须是一个 URL。 并且,类似于内置函数 open()打开文件的'情况, urlopen() 返回文件类型的 Python 对象(一个 handler) ,有许多方法可以用来读取其内容(read() , readline() , readlines() , close()。 read()方法将内容读取为字符串文本。

一旦 HTML 源代码被存储在字符串变量(html)中,就可以使用 re 模块提供的工具解析它了。

在这个例子中,查看一下正在使用的 HTML(应将 HTML 文本保存到一个文件,手工 检查它) ,可以识别<h1>和</h1>为题的唯一分隔标签。 因此,正则表达式定义如下:

<h1>.{5, 400}</h1>
该正则表达式匹配 5 至 400 字符的任何由<h1>和</hl> 分隔的文本字符。 只识别标题。 必须注意到,在两个标记之间允许出现的最大字符数应该和科研文章标题可能出现的最大长度匹配,提取摘要时也要注意这一点。
如果循环提取一个 PMID列表中文章的标题和摘耍,必须在代码中加入 for 循环:

pmids = ['18235848' , '22607149' , '22405002' , '21630672‘] 
for pmid in pmids: 
  url = 'http ://www.ncbi.nlm.nih.gov/pubmed?term=%s'+ %pmid
  ···

PMID 的列表可以从文本文件中读取,并存储在 Python 列表中。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,525评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,203评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,862评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,728评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,743评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,590评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,330评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,244评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,693评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,885评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,001评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,723评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,343评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,919评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,042评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,191评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,955评论 2 355

推荐阅读更多精彩内容

  • Python爬虫入门(urllib+Beautifulsoup) 本文包括:1、爬虫简单介绍2、爬虫架构三大模块3...
    廖少少阅读 9,835评论 0 6
  • 想让这张图当封面 1.1 关于 easyPubMed 作者是 Damiano Fantini ,2019-03-2...
    美式永不加糖阅读 6,836评论 5 16
  • 冬至到了,饺子是必不可少节日饭!有句民谣是冬至不端饺子碗,冻掉耳朵没人管。星期天的中午,我和妈妈弟弟一起来...
    王朝歌阅读 405评论 0 1
  • 一堂课: 太阳炙烤着大地,教室里孩子们复习得热火朝天,当然也有滥竽充数者数人,多年后的今天,这群孩子也会参加...
    酒窝窝_xlj阅读 228评论 0 1
  • 在茫茫大海当中,一艘小船很容易被大海吞没,但是一艘大船,他就有可能抵抗风暴,抵抗海啸,最终深远航行。 ...
    首脑美业NCX阅读 492评论 0 2