论文部分内容阅读
随着云计算产业的发展,越来越多的云计算产品在市场上出现,这在给中小企业和其它用户带来更多降低企业和应用成本的同时,也使得企业和用户在面对大量产品信息的同时不知所措。这一方面是由于云产品具有可高度定制化的特点,令其信息量大增;另一方面是源自这些信息分散地存在于各云产品厂商的服务器上,难以进行集中处理。这些问题阻碍着企业和用户在选择云计算产品应用云计算技术时的有效决策。在传统互联网领域,为了解决从海量信息中有效获取有用信息这一问题,人们开发了搜索引擎,通过抓取分散在Web上的信息,可以实现对Web信息的快速查询。但Web发展到今天,信息在Web上的存在和展现方式已经发生了翻天覆地的变化,以Ajax技术为基础,应用大量如jQuery等前端脚本技术的Web站点,已然形成了将大量信息隐藏在搜索引擎抓取能力之外的RIAs (Rich Internet Applications),而云计算厂商的产品页面则几乎都是复杂的RIA。传统搜索引擎出于技术和成本的考虑,在抓取RIA中的深层网信息时力不从心。因此,为了抓取云计算厂商RIA页面中的产品信息,给企业和用户提供决策的支持,而要研究支持从RIA模式页面中抓取信息的模型和策略。本文通过对传统Web抓取技术,也就是网络爬虫,以及现有的在支持Web2.0及Ajax的抓取技术方面的研究,提出了一个支持从RIA中抓取可定制化产品信息的抓取模型和策略。研究在通用的Scrapy抓取框架的基础上,增加了用于存储和处理抓取规则的功能,重写了抓取算法,改善了调度方法,实现了脚本解析、DOM操作和用户事件触发等机制。和传统网络爬虫及现有支持Ajax抓取的系统不同,本模型和策略既不是一个通用的网络爬虫,也不是一个针对个别网站的专用抓取系统,通过特定的事件触发和RIA页面模型遍历算法,本模型和策略可以通过解析抓取规则,实现对用户可定制产品参数的产品RIA页面进行抓取。本模型和策略与传统网络爬虫的主要区别在于能对RIA页面中的脚本进行解析,并根据脚本执行结果操作页面DOM,从而获取隐藏在RIA中的深层信息;与现有的支持Ajax的抓取系统的区别在于,通过对抓取的目标页面重新建模,并采用不同的抓取算法和脚本支持方法,实现模拟用户对RIA页面助用户事件的触发。本文对支持从云计算产品RIA页面中抓取数据的抓取模型和策略的研究,对于利用云计算产品信息,为企业和用户提供云计算决策支持有重要意义,同时对获取可定制化产品的信息,对相关产品和行业进行分析也具有一定的应用价值。