您的位置:首页 > Web前端 > HTML

HTML 解析 -- htmlparser 基本使用

2010-07-05 16:30 513 查看

1.htmlparser
使用

htmlparser
是一个纯的
java
写的
html
解析的库,
htmlparser
不依赖于其它的
java
库,
htmlparser
主要用于改造

或提取
html

htmlparser
能超高速解析
html
,而且不会出错。毫不夸张地说,
htmlparser
就是目前最好的
html


析和分析的工具。无论你是想抓取网页数据还是改造
html
的内容,用了
htmlparser
绝对会忍不住称赞。由于
htmlparser
结构设计精良,所以扩展
htmlparser
非常便利。

package com.sjcj.main;

import java.io.BufferedReader;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.IOException;

import org.htmlparser.NodeFilter;

import org.htmlparser.Parser;

import org.htmlparser.filters.TagNameFilter;

import org.htmlparser.tags.LinkTag;

import org.htmlparser.util.NodeList;

import org.htmlparser.util.ParserException;

import org.htmlparser.visitors.HtmlPage;

public class TestHtmlParser {

/**

* 按行读取字符

*/

public static void StringHerf() {

String str = "";

StringBuffer sb = new StringBuffer();

BufferedReader is = null;

try {

is = new BufferedReader(new FileReader(""));

while ((str = is.readLine()) != null) {

sb.append(str);

sb.append("/n");

}

try {

} catch (Exception e) {

e.printStackTrace();

}

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

/**

* htmlparser取得一段html代码里面所有的链接地址和链接名称

*

* @param html

*/

public static void getHERF(String html) {

// 创建Parser对象根据传给字符串和指定的编码

Parser parser = Parser.createParser(html, "GBK");

// 创建HtmlPage对象HtmlPage(Parser parser)

HtmlPage page = new HtmlPage(parser);

try {

// HtmlPage extends visitor,Apply the given visitor to the
current

// page.

parser.visitAllNodesWith(page);

} catch (ParserException e1) {

e1 = null;

}

// 所有的节点

NodeList nodelist = page.getBody();

// 建立一个节点filter用于过滤节点

NodeFilter filter = new TagNameFilter("A");

// 得到所有过滤后,想要的节点

nodelist = nodelist.extractAllNodesThatMatch(filter, true);

for (int i = 0; i < nodelist.size(); i++) {

LinkTag link = (LinkTag) nodelist.elementAt(i);

// 链接地址

System.out.println(link.getAttribute("href") + "/n");

// 链接名称

System.out.println(link.getStringText());

}

}

/**

* 获取网页标题

*

* @param content

* @throws Exception

*/

public static void getTitle(String content) throws Exception {

Parser myParser;

myParser = Parser.createParser(content, "GBK");

HtmlPage visitor = new HtmlPage(myParser);

myParser.visitAllNodesWith(visitor);

String textInPage = visitor.getTitle();

System.out.println(textInPage);

}

public static void main(String[] args) {

StringHerf();

}

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