【文件属性】:
文件名称:HTMLParser-2.0-SNAPSHOT-bin.zip JAVA html解析库
文件大小:335KB
文件格式:ZIP
更新时间:2021-02-06 04:01:27
JAVA库 html解析
HTML解析实用库,非常好用
public class HtmlLinkParser {
//获取子链接,url为网页url,filter是链接过滤器,返回该页面子链接的HashSet
public static Set extracLinks(String url, LinkFilter filter) {
Set links = new HashSet();
try {
Parser parser = new Parser(url);
parser.setEncoding("utf-8");
// 过滤 <frame >标签的 filter,用来提取 frame 标签里的 src 属性所表示的链接
NodeFilter frameFilter = new NodeFilter() {
public boolean accept(Node node) {
if (node.getText().startsWith("frame src=")) {
return true;
} else {
return false;
}
}
};
// OrFilter 接受<a>标签或<frame>标签,注意NodeClassFilter()可用来过滤一类标签,linkTag对应<标签>
OrFilter linkFilter = new OrFilter(new NodeClassFilter(
LinkTag.class), frameFilter);
// 得到所有经过过滤的标签,结果为NodeList
NodeList list = parser.extractAllNodesThatMatch(linkFilter);
for (int i = 0; i < list.size(); i++) {
Node tag = list.elementAt(i);
if (tag instanceof LinkTag)// <a> 标签
{
LinkTag link = (LinkTag) tag;
String linkUrl = link.getLink();// 调用getLink()方法得到<a>标签中的链接
if (filter.accept(linkUrl))//将符合filter过滤条件的链接加入链接表
links.add(linkUrl);
} else{// <frame> 标签
// 提取 frame 里 src 属性的链接如 <frame src="test.html"/>
String frame = tag.getText();
int start = frame.indexOf("src=");
frame = frame.substring(start);
int end = frame.indexOf(" ");
if (end == -1)
end = frame.indexOf(">");
String frameUrl = frame.substring(5, end - 1);
if (filter.accept(frameUrl))
links.add(frameUrl);
}
}
} catch (ParserException e) {//捕捉parser的异常
e.printStackTrace();
}
return links;
}
}
【文件预览】:
HTMLParser-2.0-SNAPSHOT 2
----license.txt(12KB)
----bin()
--------lexer(2KB)
--------beanybaby.cmd(2KB)
--------lexer.cmd(2KB)
--------translate.cmd(2KB)
--------translate(2KB)
--------filterbuilder(1KB)
--------beanybaby(2KB)
--------parser(2KB)
--------sitecapturer(2KB)
--------sitecapturer.cmd(2KB)
--------filterbuilder.cmd(2KB)
--------parser.cmd(2KB)
--------thumbelina(1KB)
--------thumbelina.cmd(2KB)
----readme.html(8KB)
----.DS_Store(6KB)
----lib()
--------htmllexer.jar(70KB)
--------sitecapturer.jar(15KB)
--------filterbuilder.jar(68KB)
--------thumbelina.jar(42KB)
--------htmlparser.jar(136KB)