HtmlParserWord格式文档下载.docx

上传人:b****1 文档编号:15329236 上传时间:2022-10-29 格式:DOCX 页数:11 大小:21.23KB
下载 相关 举报
HtmlParserWord格式文档下载.docx_第1页
第1页 / 共11页
HtmlParserWord格式文档下载.docx_第2页
第2页 / 共11页
HtmlParserWord格式文档下载.docx_第3页
第3页 / 共11页
HtmlParserWord格式文档下载.docx_第4页
第4页 / 共11页
HtmlParserWord格式文档下载.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

HtmlParserWord格式文档下载.docx

《HtmlParserWord格式文档下载.docx》由会员分享,可在线阅读,更多相关《HtmlParserWord格式文档下载.docx(11页珍藏版)》请在冰豆网上搜索。

HtmlParserWord格式文档下载.docx

标签节点,是种类最多的节点类型,上述Tag的具体节点类都是

3).TextNode:

文本节点

HtmlParser学习笔记

(一)--创建Parser对象

最近学习了下htmlparser,用这东西解析html还是蛮好用的,为了防止以后忘掉,现总结一下。

 

首先,介绍下HTMLParser的核心类,org.htmlparser.Parser类,这个类实际完成了对于HTML页面的分析工作。

主要的构造函数如下:

publicParser();

publicParser(Stringresource)throwsParserException;

publicParser(Stringresource,ParserFeedbackfeedback)throwsParserException;

publicParser(URLConnectionconnection)throwsParserException;

publicParser(URLConnectionconnection,ParserFeedbackfb)throwsParserException;

publicParser(Lexerlexer);

publicParser(Lexerlexer,ParserFeedbackfb);

另外,该类还提供了一个静态方法,

publicstaticParsercreateParser(Stringhtml,Stringcharset);

对于大多数使用者来说,使用最多的是通过一个URLConnection或者一个保存有网页内容的字符串来初始化Parser,或者使用静态函数来生成一个Parser对象。

ParserFeedback的代码很简单,是针对调试和跟踪分析过程的,一般不需要改变。

而使用Lexer则是一个相对比较高级的话题,放到以后再讨论吧。

常见的创建Parser的方法,如下:

方法一:

通过url提取网络上的网页

www.qyclass.org

//使用publicParser();

构造函数

Parserparser=newParser();

parser.setURL("

http:

//www.qyclass.org"

);

//使用publicParser(URLConnectionconnection)throwsParserException;

Parserparser=newParser(

(HttpURLConnection)(newURL("

)).openConnection()

);

org.htmlparser.http.ConnectionManagermanager=org.htmlparser.lexer.Page.getConnectionManager();

Parserparser=newParser(manager.openConnection("

));

parser.setEncoding("

GB2312"

方法二:

提取本地网页文件(通过读文件把网页文件转化成字符串)

//使用静态方法

Parserparser=Parser.createParser(html,charset);

HtmlParserUtils.java公用类

该文件是自己编写的一个可复用的类,专门用来创建Parser对象,这里提供出来是为了方便后面的例子使用,代码如下:

packageorg.qyclass;

importjava.io.IOException;

import.HttpURLConnection;

import.MalformedURLException;

import.URL;

importorg.htmlparser.Parser;

importorg.htmlparser.http.ConnectionManager;

importorg.htmlparser.lexer.Page;

importorg.htmlparser.util.ParserException;

publicclassHtmlParserUtils{

publicstaticParsergetParserWithUrlStr(StringurlStr,Stringencoding){

Parserparser=newParser();

try{

parser.setURL(urlStr);

parser.setEncoding(encoding);

}

catch(ParserExceptione)

{

e.printStackTrace();

returnnull;

returnparser;

}

publicstaticParsergetParserWithUrlConn(StringurlStr,Stringencoding){

Parserparser=null;

URLurl=newURL(urlStr);

HttpURLConnectionurlConn=(HttpURLConnection)url.openConnection();

 

parser=newParser(urlConn);

returnparser;

catch(ParserExceptione1)

{

e1.printStackTrace();

}

catch(MalformedURLExceptione1)

catch(IOExceptione1)

//推荐使用下面这个方法,效率比较高。

publicstaticParsergetParserWithUrlConn2(StringurlStr,Stringencoding){

ConnectionManagermanager=Page.getConnectionManager();

parser=newParser(manager.openConnection(urlStr));

catch(ParserExceptione)

publicstaticParsercreateParser(StringhtmlContent,Stringencoding)

Parserparser=Parser.createParser(htmlContent,encoding);

}

HtmlParser学习笔记

(二)--遍历结点

这次主要演示下,如何迭代一个Node结点的所有根子结点。

首先,先来看下需要解析的html页面的内容,该文件命名为htmlparser.html,详细内容如下所示(该页面以后将会多次使用):

Html代码

<

!

DOCTYPEhtmlPUBLIC"

-//W3C//DTDXHTML1.0Transitional//EN"

"

//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"

>

htmlxmlns="

//www.w3.org/1999/xhtml"

head>

<

metahttp-equiv="

Content-Type"

content="

text/html;

charset=gb2312"

/>

title>

XX-title<

/title>

/head>

body>

--注意:

换行符对解析的影响!

-->

table>

tr>

td>

td-c1

/td>

/tr>

td-c2

/table>

td-a1<

td-a2<

td-b1<

td-b2<

/body>

/html>

注:

由于页面采用的url方式访问,所以要先用myeclipse建立个空的web工程

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 面试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1