基于云计算平台的HTML解析系统的设计与实现
2015-05-15夏飞丁胜孟振南汤叶舟谢景文
夏飞,丁胜,孟振南,汤叶舟,谢景文
(武汉科技大学计算机科学与技术学院,武汉 430065)
基于云计算平台的HTML解析系统的设计与实现
夏飞,丁胜,孟振南,汤叶舟,谢景文
(武汉科技大学计算机科学与技术学院,武汉 430065)
HTML解析技术能够实现非结构化数据转变为结构化的数据,传统的HTML解析技术大多被直接使用到App中,其性能往往会受到运行环境限制,而且缺乏灵活性,难以维护。针对这些不足之处,设计一种基于云计算的HTML解析系统,将HTML解析放在云上。利用云平台的超强计算性能,将非结构化的HTML数据结构化,提高移动智能终端的数据处理效率。
HTML解析;云计算;jsoup
0 引言
如今,互联网上的信息越来越多,互联网的信息已经成为一个越来越大的矿山,这个里面有黄金也有垃圾,我们坐在这个矿山上,如何挖掘其中的金子,已经越来越受到重视,而这个挖掘过程的第一步就是需要将这些非结构化的数据转变为结构化的数据。最简单的搜索爬虫需要这种转变,由Web到WAP的转码需要这种转变,Web数据的应用也需要这种转变。而HTML解析技术便可轻松实现这种转变。
实际中很多应用正是基于HTML解析技术实现的,而且越来越多的移动智能终端应用也在采用这种方式。但移动智能终端的计算性能有限,因而问题便出现了,即便HTML解析算法效率很高,但直接将这种技术运用到App上,App的性能也将会受到运行环境的限制,进而不能发挥其最大能力。
与此同时,随着科技的飞速发展,云计算技术得以推广普及,云计算平台允许我们将大量的数据处理逻辑放在云端,借助云平台计算性能和数据处理能力,对大量非结构化的数据进行结构化。
针对这些特点,我们可以利用云计算平台优秀的性能,轻松完成大量非结构化的HTML数据的解析,紧接着将其中有价值的数据提取出来重新打包封装,然后回传给发起请求的移动智能终端。此时移动智能终端App接收到的是结构化的数据,处理时可以大大降低终端的压力,获得更快的响应,进而也就能给用户带来更好的操作体验。
1 云计算平台Servlet简介
云计算平台也称为云平台。云计算平台可以划分为3类:以数据存储为主的存储型云平台,以数据处理为主的计算型云平台以及计算和数据存储处理兼顾的综合云计算平台。这里用到的是第二种,即以数据处理为主的计算型云平台。而可以部署在云平台上服务器又分为多种,这里为了更好地发挥HTML解析工具的性能,我们采用了Tomcat+Servlet技术。下面将对Tomcat、Servlet进行简单的介绍。
Tomcat是一个免费的开放源代码的Web应用服务器,具有开源免费、容易安装使用、占用资源小、易于和其他软件集成等优点,其因技术先进、性能稳定,而且免费,而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。这里我们将其用作Servlet的容器,负责管理Servlet,同时充当请求调度器,将客户端的请求传递到Servlet,同时将Servlet的响应返回给客户端。
图1 Tomcat容器模型
Servlet是一种独立于操作系统平台和网络传输协议的服务端的Java应用程序,它通过动态响应客户端请求来扩展服务器的功能。它可以处理HTTP请求,并回送一个响应;它还可以方便并且灵活地使用第三方的开源工具jar包,同时Servlet还有优秀的互联网访问性能。Servlet有着十分广泛的应用,不仅能简单地处理客户端的请求,借助Java强大的功能还可以实现并发处理多个请求的功能。在启用了Servlet的Web服务器中,默认情况下,Servlet采用一种无状态的请求-响应处理方式。Servlet被加载、初始化、准备响应客户请求的过程如图2所示。
图2 Servlet实例化、初始化及处理请求
基于这些特点,我们可以利用Servlet来编写运行于云计算平台上的Tomcat中的用户处理用户请求,抓取并解析HTML数据,然后回传数据的业务处理逻辑。
2 系统的设计与实现
2.1 服务器端设计与实现
服务器端是本系统的核心部分,其主要用来接收客户端的请求,并根据请求内容到互联网上抓取相关HTML数据,然后将数据解析打包并回传给客户端。其主要完成:①接收并识别客户端发送过来的请求;②根据请求内容,自动从互联网这座数据大矿山中匹配出相关HTML数据;③将这些相关的HTML数据抓取到云计算平台上;④对抓取回来的HTML数据进行解析;⑤将解析出的有价值的信息重新封装打包;⑥将数据回传给发起请求的客户端。
服务器端的处理流程如图3所示。
图3 服务器端处理流程
其中,对HTML数据进行解析时,用到了开源的第三方工具jar包——jsoup。在众多HTML解析工具中,jsoup有其独特的类似于jQuery的select选择器,因而其对HTML的解析效率非常高,而且使用很方便、灵活。
例如,对下面的字符串进行解析,并提取title标签下的文本节点(First parse):
2.2 客户端设计与实现
客户端部分主要用于与用户进行交互,接收用户的输入并显示服务器端返回的数据。其主要完成:①接收用户输入请求;②将请求以HTTP post/get方式传递给云计算平台上Tomcat中的Servlet程序;③接收云计算平台回传的数据;④将接收到的数据拆包,以用户可阅读的形式呈现给用户。客户端程序大致流程图如图4所示。
图4 客户端处理流程
其中,客户端不依赖于特定的平台,可以是PC上的应用软件,也可以是移动智能终端上的软件,并且其用于与用户进行交互的界面也是灵活多变的。
2.3 数据交换的格式
本系统服务器端和客户端之间的数据交换格式采用JSON格式,JSON是一种轻量级的数据交换格式,它采用完全独立于语言的文本格式,也使用了类似于C语言家族的习惯。因此其易于人阅读和编写,同时也易于机器解析和生成,这些特性使JSON成为理想的数据交换语言。本系统为了减轻移动终端的数据处理压力,同时节省数据流量,而采用了这种数据格式。
例如:"firstName":"John",表示键为“firstName”的字段的值是“John”。
3 结语
互联网的迅速发展,带来一个崭新的时代。如今互联网上的信息越来越多,如何去利用好这座矿山的资源,将其中的有价值的数据挖掘出来,将没有价值的垃圾数据过滤掉,并实现非结构化数据到结构化数据的转变,已受到越来越多的人的关注。传统的HTML数据处理的方式不够灵活,且难以维护,因此亟需一种新的处理方法,以此实现资源的最大化利用。本文设计的HTML处理系统,将数据的处理与数据的呈现分离开来,将数据处理放到云计算平台上,开发人员只需要维护云计算平台上的代码即可,因此大大提高了系统的可维护性,同时本系统使用优秀的jsoup工具来处理HTML数据,其灵活性得以大大提升。经实验运行验证,本系统能正常地工作,但还可继续完善,例如实现语义分析、数据挖掘、智能信息处理等功能。
[1] (美)Reto Meier.Android 4高级编程(第3版),2013:83~139
[2] Jsoup Cookbook(中文版).http://www.open-open.com/jsoup/
[3] 郝玉龙.Java EE编程技术,2011:18~74
[4] JSON中国.http://www.json.org.cn/
Design and Implementation of HTML Parsing System Based on Cloud Computing Platform
XIA Fei,DING Sheng,MENG Zhen-nan,TANG Ye-zhou,XIE Jing-wen
(Wuhan University of Science and Technology,Wuhan 430065)
HTML parsing technique can change the unstructured data into structured data.The traditional HTML parsing technology tends to be used directly to the App,its performance is often constrained by running environment,and lacks of flexibility,so it is difficult to maintain. Aiming at these deficiencies,designs a kind of HTML parsing system based on cloud computing,puts the HTML parsing on the cloud. Using cloud platform super computing performance,makes the unstructured HTML into structured data again,this will greatly improve the efficiency of data processing of mobile intelligent terminal.
HTML Parsing;Cloud Computing;jsoup
1007-1423(2014)01-0042-04
10.3969/j.issn.1007-1423.2014.01.010
夏飞(1992-),男,湖北荆州人,在读本科,研究方向为移动智能终端应用开发
丁胜(1975-),男,湖北武汉人,博士,副教授,研究生导师,研究方向为图像分析
孟振南(1994-),男,湖北钟祥人,在读本科,研究方向为移动智能终端应用开发
汤叶舟(1995-),男,江苏常州人,在读本科,研究方向为移动智能终端应用开发
谢景文(1995-),男,湖北天门人,在读本科,研究方向为移动智能终端应用开发
2014-11-25
2014-12-04
武汉科技大学大学生科技创新基金研究项目(No.13ZRA067)