基于C#的网页正文信息提取

时间:2024-03-05 点赞:49810 浏览:99666 作者原创标记本站原创

本文是一篇节点论文范文,关于节点方面毕业论文开题报告范文,关于基于C#的网页正文信息提取相关专科毕业论文范文。适合节点及参考文献及信息方面的的大学硕士和本科毕业论文以及节点相关开题报告范文和职称论文写作参考文献资料下载。

摘 要:快速有效的获取有用的信息是一个具有相当挑战性的课题,在传统的信息提取过程中,使用正则表达式提取网页正文信息,可以快速的获得网页的主要信息,缺点是夹杂了不必要的噪声信息.在此基础上提出了基于解析DOM树结构的网页正文信息提取方法,本文使用的方法在此基础上又做了一些改变,即使用逆序解析DOM树的方法来获取网页正文信息,在对网页内容进行净化处理后通过逆序解析达到了效率和速度相对较优的处理结果.

关 键 词:DOM树网页正文信息C#1、引言

信息服务商使用网络爬虫抓取互联网中的网页,分析和整理网页中的信息内容呈献给用户,在此过程中,提取网页正文信息是一个重要环节.传统的方法中,通过快速的正则表达式直接提取网页内容,但容纳了太多的噪声信息.为精确提取正文信息,提出了基于DOM树的页面分析方法.本文提取网页正文的方法建立在正文信息以块形式聚集的分布规律之上,为消除夹杂的噪音,假定正文信息以相近链路尝试聚集.由于正文信息聚集在一起,并在DOM树中的同一个子树中,若能确定任意一块,就能根据正文信息块之间的相似性从最近的信息块中提取其它的正文信息,并不需访问整个DOM树,甚至不用解析整个DOM树,因此采用基于C#的逆序解析DOM树算法.逆序解析算法是依据给定标记序列,从最后一个结束标记依次向前解析并不断补全缺省标记的过程.

2.网页解析方法设计及实现

2.1DOM结构

DOM的全称是DocumentObjectModel(文档对象模型),它是来自W3C的标准.DOM的工作方式是:首先将XML文档一次性的装入内存,然后根据文档中定义的元素和属性在内存中创建一个“树型结构”也就是一个文档对象模型,即是把文档对象化,文档中每个节点对应着模型中一个对象,在Application中正是使用这组对象访问XML文档进而操作XML文档.

DOM是在内存中创建树型结构视图进而提供编程接口,用下面这个XML片段来说明DOM是如何创建树型结构:

<parent>

<childid等于”123”>texthere</child>

</parent>

DOM的关键在于它允许直接更新内存中的树型结构,而不必重定向到其他输出.

2.2算法设计及实现

C#通常使用WebClient、WebBrowser或者HttpWebRequest/HttpWebResponse三种方法获取网页内容,然后经过下图所示流程获取DOM树.

每个DOM树节点对应一对标记,而在HTMI规范中,每个标记对都有开始标记,即每个结束标记至少对应着一个树节点.所以,在逆序解析DOM树的过程中,每遇到一个结束标记则至少要构建一个树节点,并将其添加成当前节点的第一个孩子节点.而当识别到一个开始标记时,就需要进行配对.具体配对算法如图1所示.

Algorithm_Match(Current_Tag,End_Tag_Stack.Active_Node)

{

//Current_Tag是当前标记,End_Tag_Stack是结束标记栈,


//Active_Node为当前节点

if(Current_Tag是文本信息或者独立标记){

Create_NodeNew_Node等于Current_Tag,//创建以文本信息为内容的叶子节点;

Active_Node.Child等于New_Node,//新叶子节点添作为Active_Node的第一个孩子;

Return;}

if(Current_Tag是一个结束标记){

Create_NodeNew_Node等于Current_Tag,//创建以当前标记为名的新节点

Active_Node.Child等于New_Node,//新节点添作为AetiveNode的第一个孩子I

ActiveNode等于New_Node,//设新节点为ActiveNode;

Return,)

//取End_Tag_Stack栈顶元素Top_Tag;

if(Current_Tag与Top_Tag可以配对){

设Active_Node为Active_Node的双亲节点}

删除End_Tag_Stack的栈顶元素;

Return;}

if(Active_Node有孩子节点而且Current_Tag不能被

Active_Node的第一个孩子节点所包含){

Create_NodeNew_Node等于Current_Tag,//创建以Active_Node为名的新节点;

Active_Node.Child等于New_Node,//新节点添作为Active_Node的第一个孩子;

Return;}

Create_NodeNew_Node等于Current_Tag,//创建以当前标记为名的新节点;

设Active_Node为Active_Node的双亲节点;

Active_Node.Child等于New_Node,//新节点添作为当前节点的第一个孩子;

Return;

3.小结

网页正文信息的提取大都基于DOM树结构解析,无论是使用节点统计方法还是链路比较方法.本文介绍了DOM树结构,使用C#语言应用逆序解析DOM树的算法对网页正文信息进行提取分析,达到了解析网页的目的.

相关论文

Maya的模型信息提取

该文为数据结构方面有关开题报告范文,与Maya的模型信息提取相关毕业论文格式,可作为论文格式专业数据结构论文写作研究的大学硕士与本科毕。

利用C#通过串口提取GPS定位信息

此文是一篇信息论文范文,信息方面论文范文,与利用C 通过串口提取GPS定位信息相关毕业论文题目。适合不知如何写信息及数据及信号方面的论文。

网页设计中的信息视觉传达

本文是一篇视觉传达论文范文,视觉传达方面毕业论文模板,关于网页设计中的信息视觉传达相关学士学位论文范文。适合视觉传达及视觉传达设计及。

中外高校英文网页信息呈现方式比较

本文是一篇网页论文范文,网页有关毕业论文格式范文,关于中外高校英文网页信息呈现方式比较相关本科论文范文。适合网页及留学生及互联网方面。

C#实现通信信息查询系统

本文是一篇数据库论文范文,数据库相关专升本毕业论文开题报告,关于C 实现通信信息查询系统相关硕士学位毕业论文范文。适合数据库及软件开发。

有关财会信息资源元数据标准的

本文是一篇数据论文范文,数据有关专升本毕业论文开题报告,关于有关财会信息资源元数据标准的相关毕业论文开题报告范文。适合数据及数据库及。

强化报名信息管理,提高鉴定工作质量

本文是一篇照片论文范文,照片方面在职研究生毕业论文,关于强化报名信息管理,提高鉴定工作质量相关毕业论文开题报告范文。适合照片及鉴定及。

递延所得税(净)资产信息解读

本文是一篇所得税论文范文,关于所得税在职毕业论文开题报告,关于递延所得税(净)资产信息解读相关专科毕业论文范文。适合所得税及资产减值及。