【Deep,Web表单标签提取探究】 表单标签

  摘要:随着Internet的不断发展,Deep Web已经成为Web上重要的信息资源,Deep Web表单标签提取是访问Deep Web资源的前提与基础。该文提出了倒推算法来处理Deep Web表单标签。
  关键词:深层网;表单标签;倒推算法;查询
  中图分类号:TP311文献标识码:A文章编号:1009-3044(2012)16-3821-02
  Study of Deep Web Form-tag Extraction
  SHAO Chong-jie, CHEN Li-jun, XU Bei, DING Te-zhan
  (Zhejiang Yuexiu University of Foreign Languages, Shaoxin 312000, China)
  Abstract: Along with the development of Internet, Deep Web has becomes important information resources, Deep Web form-tag extrac tion is the premise and foundation of access Deep Web resource. This paper designs retrodict algorithm to handle Deep Web form-tag.
  Key words: deep Web; form-tag; retrodict algorithm; query
  整个Web网络看似杂乱无章,但如果按其所蕴含信息“深度”,可以将其划分为Surface Web和Deep Web两大类。前者主要是指通过浏览器浏览的网页,它们可以被Google等搜索引擎直接检索。后者通常是指隐蔽在查询表单后面,由网站在需要时动态生成的网页,这些网页不能被传统的搜索引擎直接检索。
  随着数据库技术和网络技术的不断发展,Deep Web已经成为Web上重要的信息资源。有研究表明[1],Deep Web具有信息量大、覆盖面广、结构化程度高、增长速度快等特点。由于表单是访问Deep Web资源的唯一途径,传统的搜索引擎通过链接访问页面,缺少自动处理表单的能力,长期以来Deep Web资源得不到搜索引擎的索引和检索,因此,研究如何对表单进行处理以获取大量高质量的Deep Web资源具有非常重要的现实意义。
   1 Deep Web表单
  一个表单通常包含有说明性文字、表单控件、控件标签等内容,其用途包括注册、投票、登录、查询等。Deep Web表单是专指用作查询功能的表单。当用户提出请求使用表单查询时,首先从服务器下载表单供用户浏览,用户根据控件标签、文字说明等信息向表单控件填写查询条件等内容并提交,Web服务器通过专门的CGI接口接收用户提交的查询请求,并根据要求做出响应,将请求的查询结果反馈给查询用户。用户使用Deep Web表单的过程如图1所示。
  
   2 Deep Web表单标签提取
  Deep Web表单标签提取一般包括两个步骤:Deep Web表单识别和Deep Web表单标签识别和提取。
  2.1 Deep Web表单识别
  在Web中存在各式各样的表单,因此在进行标签提取之前,首先要过滤掉非查询表单的干扰,识别出作为查询功能的Deep Web表单。其识别过程如图2所示。
  
  图2Deep Web表单识别
  URL队列中的URL由网络爬虫从一个初始的URL集出发采集迭代所得到。这里识别一个表单是否为Deep Web表单,采用了3种启发式规则:①URL的深度,②页面的密码框控件,③页面表单中的可输入控件数量。如果一个表单达不到以上要求,则认为该表单不是Deep Web表单而丢弃。
  2.2 Deep Web表单标签识别与提取
  表单标签提取是进行表单填充的前提,表单标签提取的准确与否直接关系到表单填充[2]。用户可以通过眼睛浏览和识别表单控件,从而理解表单对表单做相应的处理,但要由机器来自动完成这一系列动作却是一件困难的事,因为表单在设计时是面向用户,而不是面向机器,即机器做不到像人那样“理解”表单控件的真正含义。虽然在HTML标准中有label标记专门指示表单控件的标签,但已有实验表明[3],实际上label标记很少被网站采用。
  该文提出一种倒推算法(Retrodict Algorithm),其基本思想为:按序读取整个表单的元素(分为文本与非文本两种)放入队列,根据非文本元素(即表单或表单控件)的标签特点,从队列中读取文本和非文本元素进行搭配组合。算法具体步骤如下:
  ①将提取的表单元素分为文本和非文本分别放入相应的队列;
  ②若该元素为文本,则检查其前一个元素是否为复选框或是单选按钮:
  如果是,则该文本为复选框或单选按钮的标签;
  如果不是,则检查临时列表是否为空:
  若临时列表仅包含一个控件,则为该控件的标签;否则,作进一步分析;
  ③若该元素为按钮,则没有标签,丢弃临时列表中的内容;
  ④若该元素为表单,则丢弃临时列表内容,并读取下一个元素,返回到②;
  ⑤若该元素为label标记,则直接返回到②;
  ⑥若该元素为复选框或单选按钮,则将其添加到临时列表;
  ⑦若该元素为文本框或下拉框:
  如果其前一个元素为文本:
  如果再前一个元素为复选框或单选按钮,则该元素没有标签;
  如果临时列表为空,则其前一个元素为该元素的标签;
  否则,加入临时列表;
  否则,加入临时列表;
  ⑧返回到②直到判断完所有元素。
  为验证算法的有效性,文章采用了伊利诺伊大学的数据集[4]进行测试。
   3结束语
  Deep Web表单标签提取与处理是访问Deep Web资源的前提与基础,它为机器自动进行表单处理提供可能,为扩大搜索引擎的信息覆盖范围搭建桥梁,从而可以更好地为人们提供信息检索服务。该文设计一种倒推算法,将表单标签和表单控件按一定的规则进行组合,从而使计算机能够“理解”各个表单控件的含义,为获取Deep Web资源做好准备。
  参考文献:
  [1] Chang K, He B, Li C,et al. Structured databases on the Web: Observations and implications. ACM SIGMOD Record, 2004,33(3):61-70.
  [2]马建华,李赛红,徐兰兰.深层网中基于入口查询的表单填充策略[J].计算机工程, 2010(4):66-67.
  [3]陈丽君.深层网查询表单标签识别技术研究[J].电脑开发与应用, 1010,23(2):66-68.
  [4] TEL-8 Query Interfaces[EB/OL].http://metaquerier.cs.uiuc.edu/repository/datasets/tel-8/browsable.

推荐访问:表单 探究 提取 标签