Page 8 - 2019年10月第30卷第20期
P. 8
的统一资源定位符(Uniform resource location,URL)开 获取途径的数据将通过数据比对并结合网站权威性确
始下载网页内容,之后通过搜索或者内容匹配的方法, 定最终录用数据。最终构建的药品属性分类知识库应
从网页中“抓取”需要的内容,在“抓取”的同时,爬虫还 用结构如图2所示。定期运行爬虫获取药品属性更新信
会持续地从网页中获取新的URL 。 息便可实现药品属性全量信息的实时更新。
[7]
网络爬虫从一个或若干初始网页的URL开始,获得
药品属性分类知识库 HIS数据库
网页上的 URL,在抓取网页的过程中,不断从当前页面
上抽取新的URL放入队列,直到满足系统的一定停止条
商品属性分类表 标准药品字典表 药品综合属性表
件。所有被网络爬虫抓取的网页将会被系统存贮,进行
一定的分析、过滤,并建立索引,以便之后查询和检索;
对于网络爬虫来说,这一过程所得到的分析结果还可能 治疗属性分类表
对以后的抓取过程给出反馈和指导。 标准药品映射表
网络爬虫架构主要由 3 个部分组成:网络爬虫调度 物质属性分类表 标准药物字典表
端(负责开启网络爬虫主程序);网络爬虫主程序(负责
访问目标网页);目标数据(负责抓取有价值的数据) 。
[7]
其中,网络爬虫主程序分为 5 个部分:①爬虫调度程序 社会属性分类表 HIS药品字典表
(程序的入口,用于启动整个程序);②URL管理器(用于
管理未抓取的URL及已经抓取过的URL);③网页下载
图2 药品属性分类知识库应用结构
器(用于下载网页内容);④网页解析器(用于解析下载
Fig 2 Application structure of drug attribute classifi-
的网页,以获取新的 URL 和所需内容);⑤网页输出器
cation knowledge base
(用于把获取到的内容以文件的形式输出)。
3 药品属性分类知识库在我院药事管理数据分析
2.2.2 基于 Scrapy 库的爬虫方法 Python 是一种计算
机程序设计语言,它的Requests库、Urllib库、Scrapy库和 中的应用
Pyquery 库等均可用于爬虫 [6-7] ,其中 Scrapy 库的使用最 笔者应用自然语言处理(Natural language process-
为广泛。Scrapy库是使用Python语言开发的、为抓取万 ing,NLP)技术及正则表达式匹配技术,对我院HIS系统
维网上的网站数据而设计的开源应用型框架,可以应用 中药品字典表与药品属性分类知识库的药品名称、规
在数据挖掘以及信息处理等方面,借助Scrapy库可以方 格、厂家等信息进行逐条比对,实现了 HIS 数据库和药
便快速地按照需求保存网页关键数据为任意数据格式。 品属性分类知识库两库药品编码的对应,为拓展HIS数
应用 Scrapy 库时,首先从爬虫中拿到第 1 个要请求 据库中的药品属性作好了准备。在此基础上,笔者在
的网址,通过调度器调度下载器进行页面下载,下载下 HIS 数据库中创建了药品属性分类信息表,将 HIS 数据
来的页面信息由爬虫进行处理;爬虫从页面中提取数据 库和药品属性分类知识库两库中药品编码能对应上的
信息并交给项目管道,而提取的网址信息则通过Scrapy 药品属性相关信息(如药品的商品信息分类、治疗属性
engine交由调度器处理;项目管道接收到爬虫数据后对 信息分类、物质属性分类等)写入该表,用于对处方按药
数据开始处理,处理之后保存为指定的数据格式;调度 品属性从药理学分类、医保用药分类、药物经济学分类、
器获取到网址之后,重复以上操作,直至调度器里网址 药品商品属性分类等方面进行关联分析。通过该项操
[8]
队列为空时,结束爬虫运行 。基于 Scrapy 库的网络数 作实现了对药品相关数据分析能力的拓展,分析人员可
据爬虫方法如图1所示。 以使用药品属性分类信息表中的任意分类项进行聚合
查询,实现以药品属性为分析源的医院药品使用相关数
数据库 文档 调度器
据的分析。
3.1 在医院抗菌药物使用情况分析中的应用
[9]
项目管道 Scrapy engine 中间件 爬虫 《全国抗菌药物临床应用专项整治活动方案》 中明
中间件 确了各级医疗机构抗菌药物品种数量、各类抗菌药物品
规数量、Ⅰ类切口抗菌药物使用率等一系列管控指标。
下载器 万维网
通过将药品属性分类信息库与 HIS 数据库中抗菌药物
图1 基于Scrapy库的网络数据爬虫方法 属性相关项进行关联,分析人员可先从HIS数据库中通
Fig 1 Network data crawling method based on Scrapy 过联合查询调取一定时期内医院用药医嘱信息,并将药
笔者应用自行编制的爬虫按前述药品属性分类获 品属性相关信息一并查出,再通过药品属性中对每种药
取方法实现了自动获取药品属性全量信息。存在多个 物的抗菌药物分级分类标识进行聚合查询,即可实现通
中国药房 2019年第30卷第20期 China Pharmacy 2019 Vol. 30 No. 20 ·2739 ·