搜索java html  解析,有不少开源类库。
找问题答案,关键要学会搜索,找准搜索关键词,百度素强大滴

解决方案 »

  1.   

      网络信息采集大师这类软件大多需要收费,还要一个个试合不合用,不如自己做个。
    推荐htmlparser,给你个例子
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    import org.htmlparser.*;
    import org.htmlparser.filters.*;
    import org.htmlparser.tags.*;
    import org.htmlparser.util.*;public class Test {
    private final static Log logger = LogFactory.getLog(Test.class); /**
     * @param args
     *            测试解析html<tb>
     *            <tr>中数据,循环打印 第i个table中的第j个tr,第k个td的内容是((((TableTag)
     *            nodeList.elementAt(i)).getRows()[j]).getColumns()[k]).toPlainTextString()
     *            i,j,k都是从0开始数的
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    try {
    Parser parser = new Parser();
    NodeList nodeList = null;
    parser
    .setURL("http://www.xjflcp.com//video/prizeDetail.do?operator=detail187&lotterydraw=2008072");
    parser.setEncoding(parser.getEncoding());
    NodeFilter tableFilter = new NodeClassFilter(TableTag.class);
    OrFilter lastFilter = new OrFilter();
    lastFilter.setPredicates(new NodeFilter[] { tableFilter });
    nodeList = parser.parse(lastFilter);
     
    for (int i = 0; i <= nodeList.size(); i++) {
    if (nodeList.elementAt(i) instanceof TableTag) {
    TableTag tag = (TableTag) nodeList.elementAt(i);
    TableRow[] rows = tag.getRows();
    // i是table,j是tr,k是td
    for (int j = 0; j < rows.length; j++) {
    TableRow tr = (TableRow) rows[j];
    TableColumn[] td = tr.getColumns();
    for (int k = 0; k < td.length; k++) {
    System.out.println("i,j,k是多少:" + i + ":" + j + ":" + k
    + "内容:" + td[k].toPlainTextString());
    }
    }
    }
    }


    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } }
    }
      

  2.   

    有个专业网站,GooSeeker,专门做信息提取产品和服务,同时网站是一个知识库,可以参考