1引言
随着金融市场的全球化发展以及计算机网络技术的广泛应用,全球金融市场已经开始走向金融网络化,大量的金融数据信息从互联网第一时间发布,如何从互联网中实时、快速地抓取和处理金融数据将是金融信息服务提供商的一个巨大挑战,Web数据抓取技术能够批量、快速从网站上提取信息,本文应用Web数据抓取及处理技术设计并构建了一个金融数据Web抓取与处理系统。
1.1研究背景
随着互联网的迅猛发展,Web信息量开始爆炸性地增长,金融信息业也得到了更为广阔的发展空间。各种金融资讯、金融网站、金融交易网站等充斥着人们的生活。因特网是一个巨大的信息空间,Web页面数以几十亿计,而且仍在以几何级数增长⑴,用户想要在海量的网页里査找金融信息,就像大海拐针一样,会耗费大量的时间和精力。众所周知,信息和数据对于从事金融信息服务业的公司来说是至关重要的,而金融数据种类繁多(如股票、债券、指数等等)、数据量大、精确度要求高,并且不同的金融交易市场以及不同种类的金融数据在金融网站上都有各自的数据更新时间段,用户想要快速地获取有一定价值的信息实属不易。此时急需一种技术手段,能够使信息的获取更加高效、简单、准确,并且去除杂乱的干扰信息,直接找到用户想要的信息。专注于金融信息行业的用户一般会把金融数据釆集工作按照市场来分类,精通日语的员工做日本市场的金融数据釆集,精通韩语的员工做韩国市场的金融数据釆集,精通泰语的员工做泰国市场的金融数据采集等等。每个信息采集人员通过浏览相应市场的多个金融网站获取信息,并对数据进行处理,生成本地文件。上述传统地人工获取金融数据一方面人员投入量大,另一方面手工操作的效率低下、精确度低、错误率高。因此设计和实现金融数据Web抓取及数据处理系统将有重大的实际应用价值。此时,进行Web抓取及数据处理系统的设计与实现势在必行。
2 Web数据抓取及数据处理
RicGenerator项目实现了金融数据Web抓取与处理功能,此项目的成功得益于大量基础理论知识的研究与应用;本章节主要介绍RicGenerator项目开发所涉及到的主要基础理论知识,包括Web数据抓取技术、Web数据解析、文件读写、反射和多线程技术等。
2.1 Web数据抓取技术
本节主要从Web数据抓取的概念、原理、对象、类型、策略和方法等六个方面分别介绍Web数据抓取技术。
2.1.1Web数据抓取的概念
Web数据抓取(Web scraping,也叫Web数据采集)指的是批量、快速从网站上提取信息的一种计算机软件技术。Web信息采集是一个普遍的大多数搜索引擎所采用的技术。Web数据抓取主要是将非结构化的信息从大量的网页中抽取出来,转化成结构化数据,存储在本地数据库中以供分析和使用。Web数据抓取也关系到网络的自动化,即使用计算机软件模拟浏览器的行为,能将可以在浏览器上显示的任何数据提取出来,因此也称为屏幕抓取(Screen scraping)。
2 Web数据抓取及数据..................................5
2.1Web数据抓取技术...............................5
2.1.1Web数据抓取的...............................5
2.2Web数据解析...............................11
2.2.1网页内容解析...............................11
2.2.2数据处理...............................12
2.3读写文件...............................13
2.3.1读写 Excel...............................13
2.4反射...............................18
2.5多线程...............................19
3系统概要设计...............................21
3.1需求分析...............................21
4系统详细设计及实现...............................31
4.1系统包设计...............................31
4.2RicGeneratorLib 设计...............................33
5结论
本论文以金融信息服务行业的金融数据获取与处理为主题,对Web数据抓取及处理技术进行了理论研究,并结合软件开发技术理论,将其应用到实际项目一一RicGenerator的开发实践中,分析、设计并实现了金融数据Web抓取及处理应用系统。本系统釆用面向主题的数据抓取方式及深层网络的抓取方式,采用逐层抓取的策略模式对金融数据进行抓取,根据一定的规则分析网页结构及内容,批量而精确地抓取各个目标网页中的半结构化与非结构化数据,转化为结构化的记录,并对数据进行分析、对比、转换、过滤等,自动生成文件,更新备份文件。在此基础上设计出金融数据Web抓取及数据处理系统。总体上说本课题重点解决的关键问题有:
(1)Web数据抓取的方式、方法和策略。本项目采用面向主题的数据抓取方式,及深层网络的抓取方式,釆用逐层抓取的策略模式对金融网站进行数据抓取,采用发送HTTP请求及使用Selenium模拟用户操作的方式获取Web金融数据。
(2)分析不同金融网站的模板结构,针对不同的网页结构,采用合适的数据抽取策略,摒弃无关的内容,精确提取所需数据。对于结构化的Web页面,适合采用DOM树内容提取法,或者采用Selenium并结合XPath查询的方式提取相关内容;对于非结构化Web页面,适合釆用正则表达式法及字符串处理技术;对于半结构化Web页面,可以采用三种方法结合使用的方式。