您的位置:首页 > Web前端 > Node.js

HtmlParser初探--使用Nodefilter和Visitor进行网页分析

2015-08-12 10:04 691 查看
url:http://blog.csdn.net/thamsyangsw/archive/2009/08/15/4448873.aspx

现在在使用htmlparser对html进行解析,对于html页面的解析htmlparser是一个功能比较强大的工具(相关下载:http://sourceforge.net/projects/htmlparser/)。以下是经常使用的对页面解析的两种方法,简单的总结了这两种方法的实现步骤,希望在这里抛砖引玉,有这方面编程经验的们,能参与讨论,怎样用它来进行html-->jsf的转换。

一、利用NodeFilter对网页进行分析

1、生成一个Parser

a.通过url提取网络上的网页

Parser parser = new Parser();

parser.setURL("http://www.yahoo.com.cn");

b.提取本地网页文件

通过读文件把网页文件转化成字符串;

Parser parser=Parser.createParser(html,charset);

2、利用NodeFilter做一个filter

a.利用Tag Name

NodeFilter filter=new TagNameFilter("IMG");

b.利用Tag Class

NodeFilter filter = new NodeClassFilter(ImageTag.class);

3、通过匹配filter,得到所有符合条件的Tag

NodeList list=parser.extractAllNodesThat(filter);

for(int i=0;i String content=list.elementAt(i).toHtml();//得到符合条件的Tag内容

如果针对具体情况进行更加详细的处理,则:

ImageTag imageTag=(ImageTag)list.elementAt(i);

…………

}

然后根据需要做相应的处理。

二、利用Visitor对网页进行分析

1、生成一个Parser

a.通过url提取网络上的网页

Parser parser = new Parser();

parser.setURL("http://www.yahoo.com.cn");

b.提取本地网页文件

通过读文件把网页文件转化成字符串;

Parser parser=Parser.createParser(html,charset);

2、用visitor访问页面

ex:ObjectFindingVisitor visitor=new ObjectFindingVisitor();

parser.visitAllNodesWith(visitor);

3、通过特定的visitor得到符合条件的Tag

Node[] nodes=visitor.getTags();

for(int i=0;i ImageTag imageTag=(ImageTag)nodes[i];

…………

//根据需要做特定处理

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: