html的一些常用函数!
来源:互联网 发布:淘宝图片像素是多少 编辑:程序博客网 时间:2024/06/05 16:50
1 创建parser对象,有两种方式
Parser parser=new Parser(String html)
传入的html
第2种为:
//通过指定URLConnection对象创建Parser对象
Parser parser = new Parser((HttpURLConnection)(new URL(url)).openConnection());
之后就可以进行访问parser中解析好的内容了
2 解析时,有两类方式,visitor方式和filter过滤方式,vistior方式需要遍历每一个节点,
而filter方式则是过滤。
3 visitor方式的例子;
try{
//通过指定URLConnection对象创建Parser对象
Parser parser = new Parser((HttpURLConnection)(new URL(url)).openConnection());
//设置Parser对象的字符编码,一般与网页的字符编码保持一致
parser.setEncoding("GB2312");
//创建LinkFindingVisitor对象
LinkFindingVisitor lvisitor = new LinkFindingVisitor("http://news.qq.com/");
//查找http://www.qq.com的链接个数
parser.visitAllNodesWith(lvisitor);
System.out.println("网页中包含http://news.qq.com/的链接个数:"+lvisitor.getCount());
}catch(Exception ex){
ex.printStackTrace();
}
/** TextExtractingVisitor类的用法举例 */
public static void testTextExtractingVisitor(String url){
try{
//通过指定URLConnection对象创建Parser对象
Parser parser = new Parser((HttpURLConnection)(new URL(url)).openConnection());
//设置Parser对象的字符编码,一般与网页的字符编码保持一致
parser.setEncoding("GB2312");
//创建StringFindingVisitor对象
TextExtractingVisitor visitor = new TextExtractingVisitor();
//去除网页中的所有标签,提出纯文本内容
parser.visitAllNodesWith(visitor);
System.out.println("网页的纯文本内容为:"+visitor.getExtractedText());
}catch(Exception ex){
ex.printStackTrace();
}
}
4 还可以自定义nodevisitor来扩展nodevisitor,重载其中的各方法:
/** 自定义NodeVisitor子类,并重载抽象类NodeVisitor中的相关方法 */
public class MyNodeVisitor extends NodeVisitor {
/** 重载抽象类NodeVisitor的beginParsing方法,解析开始时调用此方法 */
public void beginParsing(){
System.out.println("开始解析HTML内容......");
}
/** 重载抽象类NodeVisitor的finishedParsing方法,解析结束时调用此方法 */
public void finishedParsing(){
System.out.println("整个HTML内容解析完毕!");
}
/** 重载抽象类NodeVisitor的visitTag方法,遇到开始标签时调用此方法 */
public void visitTag(Tag tag){
System.out.println("开始当前标签: "+tag.getText());
}
/** 重载抽象类NodeVisitor的visitEndTag方法,遇到结束标签时调用此方法 */
public void visitEndTag(Tag tag){
System.out.println("结束当前标签: "+tag.getText());
}
/** 重载抽象类NodeVisitor的visitStringNode方法,遇到文本节点时调用此方法 */
public void visitStringNode(Text string){
System.out.println("当前文本节点: "+string);
}
/** 重载抽象类NodeVisitor的visitRemarkNode方法,遇到注释时调用此方法 */
public void visitRemarkNode(Remark remark){
System.out.println("当前注释: "+remark);
}
5 使用filter方式过滤
基本用法:
TagNameFilter类用法
//通过指定URLConnection对象创建Parser对象
Parser parser = new Parser((HttpURLConnection)(new URL(url)).openConnection());
//设置Parser对象的字符编码,一般与网页的字符编码保持一致
parser.setEncoding("GB2312");
//创建TagNameFilter实例
NodeFilter filter = new TagNameFilter ("DIV");
//筛选出所有DIV标签节点
NodeList nodes = parser.extractAllNodesThatMatch(filter);
if(nodes!=null) {
for (int i = 0; i < nodes.size(); i++) {
Node textnode = (Node) nodes.elementAt(i);
System.out.println("当前DIV:"+textnode.getText());
}
Parser parser=new Parser(String html)
传入的html
第2种为:
//通过指定URLConnection对象创建Parser对象
Parser parser = new Parser((HttpURLConnection)(new URL(url)).openConnection());
之后就可以进行访问parser中解析好的内容了
2 解析时,有两类方式,visitor方式和filter过滤方式,vistior方式需要遍历每一个节点,
而filter方式则是过滤。
3 visitor方式的例子;
try{
//通过指定URLConnection对象创建Parser对象
Parser parser = new Parser((HttpURLConnection)(new URL(url)).openConnection());
//设置Parser对象的字符编码,一般与网页的字符编码保持一致
parser.setEncoding("GB2312");
//创建LinkFindingVisitor对象
LinkFindingVisitor lvisitor = new LinkFindingVisitor("http://news.qq.com/");
//查找http://www.qq.com的链接个数
parser.visitAllNodesWith(lvisitor);
System.out.println("网页中包含http://news.qq.com/的链接个数:"+lvisitor.getCount());
}catch(Exception ex){
ex.printStackTrace();
}
/** TextExtractingVisitor类的用法举例 */
public static void testTextExtractingVisitor(String url){
try{
//通过指定URLConnection对象创建Parser对象
Parser parser = new Parser((HttpURLConnection)(new URL(url)).openConnection());
//设置Parser对象的字符编码,一般与网页的字符编码保持一致
parser.setEncoding("GB2312");
//创建StringFindingVisitor对象
TextExtractingVisitor visitor = new TextExtractingVisitor();
//去除网页中的所有标签,提出纯文本内容
parser.visitAllNodesWith(visitor);
System.out.println("网页的纯文本内容为:"+visitor.getExtractedText());
}catch(Exception ex){
ex.printStackTrace();
}
}
4 还可以自定义nodevisitor来扩展nodevisitor,重载其中的各方法:
/** 自定义NodeVisitor子类,并重载抽象类NodeVisitor中的相关方法 */
public class MyNodeVisitor extends NodeVisitor {
/** 重载抽象类NodeVisitor的beginParsing方法,解析开始时调用此方法 */
public void beginParsing(){
System.out.println("开始解析HTML内容......");
}
/** 重载抽象类NodeVisitor的finishedParsing方法,解析结束时调用此方法 */
public void finishedParsing(){
System.out.println("整个HTML内容解析完毕!");
}
/** 重载抽象类NodeVisitor的visitTag方法,遇到开始标签时调用此方法 */
public void visitTag(Tag tag){
System.out.println("开始当前标签: "+tag.getText());
}
/** 重载抽象类NodeVisitor的visitEndTag方法,遇到结束标签时调用此方法 */
public void visitEndTag(Tag tag){
System.out.println("结束当前标签: "+tag.getText());
}
/** 重载抽象类NodeVisitor的visitStringNode方法,遇到文本节点时调用此方法 */
public void visitStringNode(Text string){
System.out.println("当前文本节点: "+string);
}
/** 重载抽象类NodeVisitor的visitRemarkNode方法,遇到注释时调用此方法 */
public void visitRemarkNode(Remark remark){
System.out.println("当前注释: "+remark);
}
5 使用filter方式过滤
基本用法:
TagNameFilter类用法
//通过指定URLConnection对象创建Parser对象
Parser parser = new Parser((HttpURLConnection)(new URL(url)).openConnection());
//设置Parser对象的字符编码,一般与网页的字符编码保持一致
parser.setEncoding("GB2312");
//创建TagNameFilter实例
NodeFilter filter = new TagNameFilter ("DIV");
//筛选出所有DIV标签节点
NodeList nodes = parser.extractAllNodesThatMatch(filter);
if(nodes!=null) {
for (int i = 0; i < nodes.size(); i++) {
Node textnode = (Node) nodes.elementAt(i);
System.out.println("当前DIV:"+textnode.getText());
}
- html的一些常用函数!
- 一些常用的html代码
- Html的一些常用标签
- html 一些常用的功能
- HTML的一些常用标签
- HTML的一些常用标签
- 一些常用的HTML标签
- 一些常用的函数
- 一些常用的函数
- 一些常用的函数
- php常用的一些函数 将与、单双引号、大于和小于号化成HTML格式
- ASP的一些常用函数!
- 一些常用的Asp函数
- 一些常用的Delphi函数
- 常用的一些处理函数
- 常用的一些处理函数
- 常用的一些处理函数
- 一些常用的php函数
- 基于SIMD指令的内积运算
- 所有指针都应该初始化
- 程序员困境:我们通过编码谋生,但环境却正在摧毁我们这种谋生的能力
- wikioi p1204 寻找子串位置
- 黑书 舞蹈家怀特先生
- html的一些常用函数!
- Exercises2.1 E4(how many permutations can be obtained by using stack)
- 网络IO模型
- zoj3659 Conquer a New Region
- 基本数据结构之堆栈
- ADSTexture.vp
- wikioi p1205 单词翻转
- 网站加速--服务器编写篇
- java中的多线程