js提取指定网站内容 2017年第28gggg6期江西理工大学学报v
优采云 发布时间: 2021-06-07 06:38js提取指定网站内容 2017年第28gggg6期江西理工大学学报v
没有。 28gg6 江西科技大学学报 v. 1. 28, N. . 2007 年 12 月 6 日 JOURNALOFJIANGXIUNIVERSITYOFSCIENCEANDTECHNOLOGY 2007 年 12 月 文章 编号:1007-1229(2007)06—0026—03HtmlParser 提取网页信息的设计与实现 黄颖,黄志平,江西大学信息工程学院,1.与技术,江西赣州341000;2.赣南师范学院,江西赣州341000) 摘要:随着互联网信息量的快速增长,迫切需要一些自动化工具来快速帮助人们从标题、链接、邮件、图片等海量信息源中找到自己真正需要的信息,而HTML语言表达的网页只适合浏览器分析后浏览,不适合浏览器*敏*感*词*,2005级*敏*感*词*第28卷第6期,黄颖等:HtmlParser提取网页信息27Node形成树状结构的设计与实现代表 HTML 的基础,都在 org. html解析器。在标签包中。根据要处理的目标数据不同,表示为接口Node的实现。节点定义: 不同类型的签名者。这种方式可以轻松处理页面树结构表示的其他Page对象; ②获取页面对象标签的类型。返回文档中的每个元素都是传递人类父节点、子节点和兄弟节点的方法; ③指向对应HTML文本实例的节点,通过该节点可以访问当前标签的方法; ④节点的起止位置; ⑤过滤方式; ⑥标签的起始位置、结束位置以及标签中收录的访问者访问机制。 Node分为3类: RemarkNode,表示文本信息,也可以访问其父标签和HTML中的所有注释; TagNode,标签节点,是最多样化的子标签等;并且也可以使用toHtml方法来修正节点类型,上面Tag的具体节点类就是清理TagNode标签中收录的HTML信息,由HtmlPraser来实现; TextNode,文本节点。自动添加一些未闭合的标签,使得生成的词Abs~actNode是Node的具体类实现,字符串中收录完整的格式控制信息,在页面上显示形成树状结构的作用。 AbstractNode除了显示这些信息外,并没有破坏布局,实现了预期的与body Node相关的accept、toString、toHtml、toPlain-效果。文本S。除了tring等方法,还可以实现其他基本方法,使其子类不关心具体的树操作。标签是具体分析的主要内容。标签分为网页并收录大量链接。同时,不能收录其他标签的Html-Composite Tag和简单的Tag Parser也收录LinkTag。但是,实际使用中还是有两种。前者的基类是 CompositeTag。子类包需要重新加载部分接口,主要提取27个子类型,包括BodyTag、Div、FrameSetTag、OptionTag等,以及页面的位置信息。简单的标签包括 BaseHrefFag 和 DoctypeTag。目前,网页中存在大量的超链接。这些链接包括FrameTag、ImageTag、InputTag、JspTag、MetaTag,以及很多信息。超链接的提取是网页信息检索、中文分类和ProcessingInstructionTag。 . Tag在信息抽取、单词等方面所需的准备工作6[]。如果你直接使用 HtmlParser,它就有非常重要的作用。网络上提取超链接的速度比较慢。根据 HtmlParser 的人口,现有的解析器是 HtmlParser,解析 10 个常用网页的 HTML 文本的平均时间为 6S,最多的信息传递给它,或者直接传递一个 URL 地址,例如:慢实际上达到了26s,网络Parserparser=newParser fh''ttp:#www。雅虎。 COB。这是什么情况,这对于解析大量数据的网页是不能接受的。 cn"); 如果是解析本地HTML文本信息,如果是解析本地web文档,平均响应时间稍微复杂一些。代码如下:2S。目前天网提供的数据有200G,这里我们打算用它 Stringpath="..."; // 文档所在的路径是实验对象 StringBuffersbStr=newStringBuffer0; 算法实现 BufferedReaderreader=new BufferedReader new Fil- 输入:某个网站Home地址(URL).eReader(newFile(path))); 输出:网站内页链接信息 Stringtemp=: 算法:详细流程如图1所示。while((temp=reader.readLine0) !=nul1)(1) 提取首页URL信息(若干); {(2)分析所有URL对应的页面并提取链接字母sbStr.append(temp); sbStr.append("krkn");信息,得到的Link;}(3)信息清洗后保存在数据库中。Stringresult=sbStr.toString0;如图1所示信息提取分为3个模块: ①Parserp=Parser.ereateParser(resuh,"GB2312”);部分Link提取模块,②清理提取的Link模块,③保存并初始化一个Parser实例,然后立即存储模块。该模块的具体功能如下。解析人类 HTML 内容。方法parser.extractAllN —(1)Webpage内部链接提取模块。该模块是系统odesThatAre(XXXTag.class)中HTML内容的核心之一。它实现的主要功能是使用HtmlParser的所有标签XXXTag解析出来,放到一个具体的包中,基于上述算法的递归处理部分,提取出页面上的文档,通常是.txt文件,几乎所有的HTML标签都有对应的类,比如LinkTag,ImageTag, (2)clean 已经提取了Link模块。之前提取的大量FormTag、InputTag、AppletTag等,这些标签都是Link数据,含有大量脏“数据”,不能直接用来制作江西科技大学学报2007年12月 3.2 链接已提取编号 数据清洗(data清洗或数据清洗),顾名思义就是按照一定的规则去除“脏数据”,其目的是检测错误并且不一致删除或修正数据,从而提高数据质量。数据清洗的原则: ①无论是单数据源还是多数据源,数据中所有明显的错误和不一致都必须检测并去除; ② 尽可能减少人工干预和用户编程工作量,并易于扩展到其他数据源; ③应结合数据转换; ④ 必须有相应的描述语言来指定数据转换和数据清洗操作,所有这些操作都应该在一个统一的框架下完成。数据清洗有两种方法。一种是在保存之前对文档或数据进行处理,另一种是先提取所有数据,然后再选择文档或数据库中的数据。为了使网页美观,网页设计师收录了很多无用的信息。这里,图1中的信息提取流程图被视为噪声。部分清除噪声的代码如下: BufferedReaderbr=-newBufferedReader(newFlieReader(0); 使用过,必须清除后才能使用。while((s=br.readLine0)I=nuU)( 3)Storage Module .该模块使用SQLServer存储{sb.append(s);}获取的数据,不断更新数据库,避免保存重复信息.br.close0; 3 系统实现str=-sb。 substring(start,end); 为了突出主题和介绍实现技术方便,下面的str=srt.trimO;f(str.1ength0>1)content.append(str+””);关键代码省略了 try-catch 部分和一些异常处理部分。while( i