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  ·
   3   4   5   6   7   8   9   10   11   12   13