jeecms 采集功能优化,基于htmlparser实现
    说明:此次优化基于htmlparser,根据标签名称或者标签属性及属性值 过滤内容,只需要设置,内容地址集及内容参数即可采集,准确率高。  
用法:
在“开始HTML”处(没有修改模板,其实现在应该叫“内容区域参数”)写上你要采集的标签名称/标签属性及属性值,如  id=artibody  
            在“结束HTML”处(没有修改模板,其实现在应该叫“内容区域过滤参数”)写上在内容区域内你要过滤的标签名称/标签属性及属性     值,如:type=text/javascript,class=icon_fx|blkComment otherContent_01  
约定:不同标签/属性以逗号(“,”)分隔,相同属性不同值,值与值之间以"|"分隔  
           1,标签属性/值形式,如:class=articleList|tips,id=fxwb|fxMSN|fxMSN  
            2,标签名称形式,如:div,p,span  
            3,混合形式,如:class=articleList|tips,id=fxwb|fxMSN|fxMSN,div,p,span  
采集参数样例:  
新浪国内新闻:  
内容地址集:  开始HTML: class=list_009     结束HTML :空  
内容: 开始HTML: id=artibody       结束HTML :type=text/javascript,class=icon_fx|blkComment otherContent_01,style=text-align: right;padding-right:10px;|margin-top:6px;|font-size: 12px ! important;|font-size:12px,id=fxwb|fxMSN|fxMSN|comment_t_show_top,style,script  
代码如下:  
HTML解析工具类接口:
package com.jeecms.cms.service;
import java.util.List;
import com.jeecms.cms.entity.assist.CmsAcquisition;
/**
 * HTML解析工具类接口
 * @author javacoo
 * @since 2011-10-31
 */
public interface ParseHtmlTool {
/**
 * 取得连接集合
 * @param orginHtml 原始HTML
 * @return 连接集合
 */
List<String> getUrlList( String orginHtml);
/**
 * 取得标题集合
 * @param orginHtml 原始HTML
 * @return 标题集合
 */
List<String> getTitleList(String orginHtml);
    /**
     * 取得指定区域的HTML内容
     * @return 指定区域的HTML内容
     */
String getHtml(String orginHtml);
}
HTML解析工具,HtmlParser实现类:
package com.jeecms.cms.service;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.commons.lang.StringUtils;
import org.htmlparser.Node;
import org.htmlparser.NodeFilter;
import org.htmlparser.Parser;
import org.htmlparser.filters.HasAttributeFilter;
import org.htmlparser.filters.NodeClassFilter;
import org.htmlparser.filters.TagNameFilter;
import org.htmlparser.nodes.RemarkNode;
import org.htmlparser.util.NodeList;
import org.htmlparser.util.ParserException;
import com.jeecms.cms.entity.assist.CmsAcquisition;
/**
 * HTML解析工具,HtmlParser实现类
 * @author javacoo
 * @since 2011-10-31
 */
public class HtmlParserImpl implements ParseHtmlTool{
/**连接集合标志*/
    private static String LINK_LIST = "linkList";
    /**标题集合标志*/
private static String TITLE_LIST = "titleList";
/**单标签标志*/
private static String SINGLE_TAG = "singleTag";
/**连接正则表达式*/
private static String LINK_REGX = "<a.*href=\"(.*?)\".*>(.*?)</a>";
/**正则表达式对象*/
private Pattern pt = Pattern.compile(LINK_REGX);
/**采集参数bean*/
private ParamBean paramBean;
       public HtmlParserImpl(CmsAcquisition acqu){
parseRequestParam(acqu);
}
/**
 * 取得标题集合
 * @param orginHtml 原始HTML
 * @return 标题集合
 */
public List<String> ge