如鹏网 大学生计算机学习社区

CowNew开源团队

http://www.cownew.com 邮件请联系 about521 at 163.com

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  363 随笔 :: 2 文章 :: 808 评论 :: 0 Trackbacks

package com.rupeng.search.discuz;

import java.net.URLConnection;

import org.htmlparser.Parser;
import org.htmlparser.Tag;
import org.htmlparser.tags.Div;
import org.htmlparser.util.NodeList;
import org.htmlparser.util.ParserException;
import org.htmlparser.visitors.HtmlPage;
import org.htmlparser.visitors.NodeVisitor;

public class DiscuzDefaultStyleHTMLParser
{
 private String title;
 private String bodyText;

 public DiscuzDefaultStyleHTMLParser(URLConnection urlConnection) throws ParserException
 {
  Parser parser = new Parser(urlConnection);
  HtmlPage visitor = new HtmlPage(parser);
  parser.visitAllNodesWith(visitor);
  this.title = visitor.getTitle();
  NodeList nodeList = visitor.getBody();
  final StringBuffer sb = new StringBuffer();
  nodeList.visitAllNodesWith(new NodeVisitor() {

   @Override
   public void visitTag(Tag tag)
   {
    //因为主题、回帖都是包含在Div里,而且主题、回帖的divid都是以“postmessage_”开头
    if (tag instanceof Div)
    {
     Div div = (Div) tag;
     String divId = div.getAttribute("id");
     if (divId != null&& divId.startsWith("postmessage_"))
     {
      sb.append(div.getStringText());
     }
    }
   }
  });

  this.bodyText = sb.toString();
 }

 public String getTitle()
 {
  return title;
 }

 public String getThreadText()
 {
  return bodyText;
 }
}

posted on 2009-08-13 19:26 CowNew开源团队 阅读(676) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: