中医药数据采集系统的设计与实现(附件)

随着信息时代的到来,传统的中医药信息也越来越多地出现在互联网上,大量珍贵的数据也从纸质书籍或本地数据库转移到互联网上。各大中医药网站一般以提供数据库接口的形式允许用户输入关键词进行查询,用户通过这种形式很难获得该数据库的完整内容。在当今大数据的背景下不利于对中医行业的数据进行挖掘。本课题的目的就是采用网络爬虫技术抓取大型中医药网站的数据,并将得到的数据进行清洗和结构化存储,最终以网页的形式展示出来,并为其他相关课题的研究提供数据资源。关键词 中医药,动态网页,网络爬虫,Python十九世纪末,伴随着信息时代的到来,越来越多的信息出现在互联网上,怎样才能有效的提取和利用这些信息成为一个巨大的难题。在这种背景下搜索引擎逐渐成为辅助人们检索信息的工具和进入万维网的入口,但是这些通用的搜索引擎也存在很大的局限性。例如通过搜索引擎返回的结果包含大量与用户搜索不相关的页面,通用的搜索引擎大多都提供基于关键字的检索,难以支持根据语义信息提出的查询。为了解决通用搜索引擎的这些不足,定向爬虫应运而生。定向爬虫可以定向抓取相关网页的资源,通过网络爬虫对各大机构的中医药数据库进行抓取,再对抓取到的信息进行处理,汇总,最终再以网页的形式供用户查询。当今互联网上众多中医数据库都是以提供数据库接口的形式供用户使用,用户查询到的仅仅是与自己输入关键词相匹配的有关信息,只要关键词不完全匹配或关键词存在近义词,用户就很有可能得不到自己想要的数据。采用网络爬虫技术对相关的多个网站进行数据抓取,再对抓取到的数据进行重新整合,再通过数据挖掘技术挖掘出数据之间的内在关联,对提高搜索质量以及对中医诊疗的智能化具有十分重要的意义。
目 录
1 引言 1
1.1 课题背景 1
1.2 课题研究的意义 1
2 相关技术 2
2.1 网络爬虫发展现状 2
2.2 PYTHON爬虫的优势 3
3 基于爬虫的数据采集系统 3
3.1 系统总体架构设计 3
3.2 开发环境介绍 4
4 数据采集模块的设计与实现 4
4.1 目标网站结构分析 4
4.2 数据包抓取 5
4.3 请求响应报文分析  *好棒文|www.hbsrm.com +Q: ^351916072^ 
6
4.4 URL编码与解码 8
4.5 数据抓取模块程序编写 9
4.6 数据清洗 10
4.7 数据存储 13
5 可视化数据查询模块的设计与实现 14
5.1 数据采集结果 14
5.2 系统实现 14
结论 25
致谢 26
参考文献 27
附录A 28
1 引言
1.1 课题背景
中医药的发展在中国有着非常久远的历史。早在先秦时期,中国最古老的中医理论名著《黄帝内经》就现世了,在此书中详细地总结了在此之前的中医治疗经验和医疗理论,为中医学的理论奠定了非常坚实的基础。传统中医是以阴阳五气作为其理论基础,通过“望闻问切”四种方法,探求病因,寻病位,再通过使用中药、针灸、推拿、按摩、拔罐、食疗等多种治疗手段,使人的阴阳调和,最终达到康复的目的。
随着web2.0时代的到来,互联网上的数据已经呈现出爆炸式增长,互联网具有可共享,使用方便等优势,使得越来越多的传统行业与互联网融合。传统中医文献大多都是记录在纸质书籍上或存储在各大医疗机构的本地数据库中,而这种传统的记录方式已经不能适应人们的需求,互联网技术的发展催动着中医数据朝着更加透明,公开,共享的方式发展,目前较大型的中医药数据网站有中医药科学数据中心[1],中医e百[2]等,这些网站中收录了大量中医资料,通过向用户提供一个数据库接口供用户查询,而用户通过接口所查询到的数据往往是很有限的(提供查询的网站一般是以模糊匹配的方式去本地数据库查找信息然后返回给用户)。在大数据的背景下,这种查询方式已经远远不能满足用户的需求。此时就需要一种新的框架能够自动采集这些网站的数据,为下一步挖掘这些数据中的内在关联做好准备。
十九世纪末,伴随着信息时代的到来,越来越多的信息出现在互联网上,怎样才能有效的提取和利用这些信息成为一个巨大的难题。在这种背景下搜索引擎逐渐成为辅助人们检索信息的工具和进入万维网的入口,但是这些通用的搜索引擎也存在很大的局限性。例如通过搜索引擎返回的结果包含大量与用户搜索不相关的页面,通用的搜索引擎大多都提供基于关键字的检索,难以支持根据语义信息提出的查询。为了解决通用搜索引擎的这些不足,定向爬虫应运而生。定向爬虫可以定向抓取相关网页的资源,通过网络爬虫对各大机构的中医药数据库进行抓取,再对抓取到的信息进行处理,汇总,最终再以网页的形式供用户查询。
1.2 本课题的意义
当今互联网上众多中医数据库都是以提供数据库接口的形式供用户使用,用户查询到的仅仅是与自己输入关键词相匹配的有关信息,只要关键词不完全匹配或关键词存在近义词,用户就很有可能得不到自己想要的数据。采用网络爬虫技术对相关的多个网站进行数据抓取,再对抓取到的数据进行重新整合,再通过数据挖掘技术挖掘出数据之间的内在关联,对提高搜索质量以及对中医诊疗的智能化具有十分重要的意义。
网络爬虫起源于二十世纪九十年代,传统爬虫是从一个或若干个初始页面的URL开始的,在抓取网页的过程中不断的从当前抓取的页面抽取新的URL放入队列,直到满足一定的条件才停止[3]。传统的网络爬虫技术主要用于爬取静态网页。但随着AJAX/Web2.0技术的流行,如何抓取采用AJAX技术的网页成了定向爬虫迫切需要解决的问题,如果爬虫依旧采用原始“爬”的机制,还是采取以往通过URL的爬取策略是无法抓取到AJAX页面的有效数据的[6]。
AJAX 技术采用了JavaScript 驱动的异步请求/响应机制,传统的爬虫不能解析JavaScript语法,所以没有办法进行JavaScript的异步调用并解析返回的内容。此外,在AJAX技术的实际应用中,JavaScript也会对网页的DOM结构进行很大的变动,甚至有可能页面的所有内容都通过JavaScript 直接从服务器端读取并且动态地绘制出来。此时就必须对网站的结构进行分析,设计出能够发送post请求的网络爬虫。于此同时,网络爬虫还面临一个问题,是否存在违反法律法规的行为。此时爬虫程序就必须更加智能,能够分析出网站的robot协议(robot协议就是网站对外来爬虫进行爬取的相关规定),从而不产生法律纠纷。
本课题的目的就是通过定向爬虫技术对相关网站进行数据抓取,进而为下一步数据挖掘打好基础。
2 相关技术
2.1 网络爬虫技术发展现状
当前国内外的爬虫技术有很多,大多由Java、C#、Python等编程语言所编写。用Java编写的爬虫的主要代表有Nutch等,Nutch是阿帕奇的开源项目之一,主要用于非定向,海量数据的爬取,目的是为搜索引擎提供大量的数据来源。用C#编写的网络爬虫主要有Hawk,它是一个界面非常友好的定向爬虫,用户能够根据自己的具体需求进行配置,然后再去爬取相关特定的网页。Python有自己的爬虫框架Scrapy,同时还拥有大量的第三方类库,用户可以根据自己的需要设计合适的定向爬虫。

版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/wljs/373.html

好棒文