htmlparser例子(转)

3 篇文章 0 订阅
1 篇文章 0 订阅
  1. package com.core;  
  2.   
  3. import java.io.BufferedWriter;  
  4. import java.io.FileWriter;  
  5. import java.util.Date;  
  6.   
  7. import org.htmlparser.Node;  
  8. import org.htmlparser.NodeFilter;  
  9. import org.htmlparser.Parser;  
  10. import org.htmlparser.beans.StringBean;  
  11. import org.htmlparser.filters.*;  
  12. import org.htmlparser.nodes.TextNode;  
  13. import org.htmlparser.util.NodeList;  
  14. import org.htmlparser.visitors.TextExtractingVisitor;  
  15.   
  16. public class Test {  
  17.       
  18.     public static void main(String[] args){  
  19.           
  20.         String title;//标题   
  21.         String body;//正文   
  22.           
  23.         try{  
  24.             Parser parser=new Parser("http://www.chinanews.com/gj/2011/09-22/3347124.shtml");//要解析的网页  
  25.             parser.setEncoding("gb2312");//设置编码   
  26.             NodeFilter filter_title=new TagNameFilter("title");//title节点过滤   
  27.             NodeFilter filter_text = new AndFilter(new TagNameFilter("div"),new HasAttributeFilter("class","left_zw"));//正文节点过滤   
  28.               
  29.             NodeList nodelist1=parser.extractAllNodesThatMatch(filter_title);//过滤得符合过滤要求的节点的LIST   
  30.             Node node_title=nodelist1.elementAt(0);//取节点   
  31.             StringBuffer buftitle=new StringBuffer();  
  32.             if(node_title==null){//判断是否为空   
  33.                 buftitle.append("");  
  34.             }  
  35.             else{  
  36.                 buftitle.append(node_title.toPlainTextString());//把节点里的文本节点转化为String 加到buftitle上   
  37.             }  
  38.             title=buftitle.toString();//转化为String   
  39.             System.out.println(title);//输出   
  40.   
  41.             parser.reset();//重置   
  42.             NodeList nodelist2=parser.parse(filter_text);//过滤出符合filter_text的节点LIST   
  43.             Node[] nodes = nodelist2.toNodeArray();//转化为数组   
  44.             StringBuffer buftext=new StringBuffer();  
  45.             String line=null;  
  46.             for(int i=0;i<nodes.length;i++){//循环加到buftext上   
  47.                 line = nodes[i].toPlainTextString();  
  48.                  if(line!=null){  
  49.                      buftext.append(line);  
  50.                  }  
  51.             }  
  52.             body=buftext.toString();  
  53.             System.out.println(body);//输出   
  54.         }catch(Exception e){  
  55.             e.printStackTrace();  
  56.         }  
  57.   
  58.     }  
  59. }  
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值