我想做一个html文件下载的东东。
但是,对html进行解析实在太麻烦了,刚开始我是自己写的类来解析,但是有好多的html文件不标准,解析总是出问题。有没有好的办法实现。总体是这样的:
1、输入url,读取这个网页。这个是没有问题的。
2、解析这个网页文件,将其中的图片等都下载到本机上,并修改其中的img标示。
3、修改网页中的A标记。谢谢

解决方案 »

  1.   

    可是用正则表格式来解析img 和<A这种, 还是比较可行的. 
      

  2.   

    有没有哪位GG有关于HTMLEditorKit的一些使用方法
      

  3.   

    HTML本来就不规范 建议看下网络爬虫 和你的思路有点象  用正则解决吧
      

  4.   

    HTMLEditorKit这个东东没用过
    不过用过另外一个东西叫 HtmlParser 的,用起来还算顺手。
      

  5.   

    就是那一类的东西。
    我现在能够使用htmlParser来获取信息,但是不知如何更改它的信息。
    如,可以获取一些链接的地址,但是如果要更改它的文字信息就不会了。
      

  6.   

    URL url = new URL("http://192.168.0.2");
       URLConnection connection = url.openConnection();
       InputStream is = connection.getInputStream();
       InputStreamReader isr = new InputStreamReader(is);
       BufferedReader br = new BufferedReader(isr);   HTMLEditorKit htmlKit = new HTMLEditorKit();
       HTMLDocument htmlDoc = (HTMLDocument) htmlKit.createDefaultDocument();
       HTMLEditorKit.Parser parser = new ParserDelegator();
       HTMLEditorKit.ParserCallback callback = htmlDoc.getReader(0);
       parser.parse(br, callback, true);
     
       for (HTMLDocument.Iterator iterator = htmlDoc.getIterator(HTML.Tag.A); iterator.isValid(); iterator.next()) {
       // href     AttributeSet attributes = iterator.getAttributes();
         String srcString = (String) attributes.getAttribute(HTML.Attribute.HREF);
        System.out.print(srcString);
        int startOffset = iterator.getStartOffset();
        int endOffset = iterator.getEndOffset();
         int length = endOffset - startOffset;
         String text = htmlDoc.getText(startOffset, length);
         System.out.println(" - " + text);
       }