王仕艳
(川北幼儿师范高等专科学校,四川 广元628000)
目前互联网中的数据还存在更新换代快、推送慢影响消息利用率、客户获得数据速度慢等问题[1-3]。而云时代下信息具有传播速度快、数据集中管理、批量传送数据等特点,同时还支持个性化服务,根据这些特点为用户推送出满足需求的数据信息,可提高数据信息的利用率。
当前的数据抓取技术有多种,其中hadoop云平台框架被广泛使用,但是这些技术多以java技术实现[4-5]。面对快速系统开发时java语言不太能满足,为此本文以C#语言作为系统开发语言使用开源nwebcrawler框架作为数据采集工具。
互联网中包含大量信息,如何获取这些信息加以使用能够给企业、个人提供更多的信息资源从而增加企业竞争和个人信息获取来源。信息获取大多来源于网站,由于行业、服务对象等不同造成网站有多种形式。如何获取不同类别网站的信息是当前面临问题。段青玲等文献对农业网络信息进行了获取[4],文献[6]对海上信息进行了获取,他们对不同的网站信息进行了不同的获取信息开发,这样增加了获取信息的成本。为解决这一问题,本文提出了一种通用网站信息获取系统开发。系统功能主要有:(1)系统登录管理,该功能用于权限管理,保障用户信息安全。(2)系统配置管理,该功能用于抓取数据规则配置、数据管理等。(3)数据抓取管理,根据配置信息进行数据抓取。(4)数据存储管理,由于抓取的数据量比较大需要对数据进行备份、还原等管理。系统用户主要有:系统管理员、普通用户两类,系统管理员对系统管理,普通用户进行相应的数据抓取管理。如图1为系统总体用例图。
图1 系统总体用例图
Web信息抓取平台主要由三部分组成:数据源、数据采集以及数据分析,如图2所示。在数据源中包含了多种类型的网站,这些网站提供采集信息;此外系统还配置有txt、xml、sqlite以及excel文件,这些文件用于存储采集信息、配置信息等。数据采集功能有:抓取、抽取、分类等。信息服务中主要进行信息发布、信息查询、信息推荐、数据管理、收费管理等。
在云环境下数据采集目的是方便用户快速查询信息,系统关键技术有:数据采集、数据抽取、数据分类、数据查询等。下文详细分析系统关键技术。
2.2.1 网站采集数据
Web数据采集主要是从Web上获取网站网页,将网页保存在文档中,并将文档中的信息提取出来。为提高系统开发效率,本文使用C#语言进行网站数据采集系统开发,该语言具有简单、易用特征,非常适合快速系统开发。当前网站数据采集框架有多种,比如:WebCollector、Nutch、nwebcrawler等[7-8]。本 文选择nwebcrawler框架作为网站采集数据框架,该框架具有源代码开发、性能优越等特点。如图3为网站采集活动图。
图2 系统总体设计
2.2.2 数据抽取技术
在C#网站数据抽取的类有:WebClient、Web-Browser、HttpWebRequest。本系统使用nwebcrawler框架、WebClient、WebBrowser进行数据采集开发。数据抽取是系统核心技术。如下为网站数据抽取部分核心代码。
//获取网页中所有的<td...></td>标签
HtmlElementCollection htmlCol = webBrowser1.Document.GetElementsByTagName("td");
if(htmlCol.Count<4)
{
return;
}
//根据网页源代码可以知道前四个是标题
//设置表格标题
dataGridView1.ColumnCount=4;
dataGridView1.Columns[0].Name = htmlCol[0].InnerText;
dataGridView1.Columns[1].Name = htmlCol[1].InnerText;
dataGridView1.Columns[2].Name = htmlCol[2].InnerText;
dataGridView1.Columns[3].Name = htmlCol[3].InnerText;
dataGridView1.Rows.Clear();
//从第四个即标题后面开始四个一行加入列表中
for(int i=4;i<htmlCol.Count &&i+4<htmlCol.Count;i+=4)
{
dataGridView1.Rows.Add(new string[]{htmlCol[i].InnerText,htmlCol[i+1].InnerText
htmlCol[i+2].InnerText,htmlCol[i+3].Inner-Text});
}
Web信息抓取系统中使用数据库有两类:一类是SQLite数据库用于存储相应的参数;一类是网络数据库Mysql。在信息抓取系统中包含的数据表有:用户权限表、信息存储表、参数配置表等。
(1)用户权限表。该表用于存储用户权限信息,包含的字段有:权限ID、权限内容、用户名、用户ID、用户密码等,表1为详细说明。
表1 用户权限表
(2)参数信息表。该表用于存储系统参数信息,包含的字段有:参数ID、参数名、参数内容、参数大小、参数时间、备注等。表2为参数信息详细说明。
表2 参数信息表
本文系统使用B/S模式进行开发。由于系统功能较多,本文只列举网站数据采集创建过程。用户需要在界面中输入网址规则、下载深度、网址过滤(使用正则表达式)、重复下载网址过滤、下载参数设置、网页数据设置、javascript引擎设置、登录设置、基本信息设置等。图4为网站数据采集创建界面。
图4 网站数据采集创建界面
本文构建了Web信息抓取系统,实现了Web信息采集,主要结论为:系统实现了数据采集、数据抽取、数据分类,用户可在界面中输入相应的信息进行数据采集,提高了系统的复用性。