目录结构如下:
             文件夹1
                    1.html
                    2.html
                      .
                      .
                      .
             文件夹2
                    1.txt
                    2.txt
                       .
                       .
                       .
现在有如下HTML代码:
<a href="javascript:if(confirm('http://music.qq.com/  \n\n该文件无法用 Teleport Ultra 下载, 因为 它是一个域或路径外部被设置为它的启始地址的地址。  \n\n你想在服务器上打开它?'))window.location='http://music.qq.com/'" tppabs="http://music.qq.com/" class="">QQ音乐</a>
想实现的效果是:
1.首先操作文件夹1下面的所有html页面
2.使用JAVA_IO遍历html文件里面所有的<a>标签
3.把遍历到的<a>标签中的tppabs属性(href下的网址也可以)下面的网址和<a>标签之间的文本取出
4.把取出的网址和文本再以:文本+"*"+URL的格式写入到*.txt中                           自己半天没弄明白希望高手帮忙写一下代码.要有注释哦..顺便想学习一下..^_^

解决方案 »

  1.   


    // String u="http://music.qq.com";
    // URL url=new URL(u);
    // URLConnection con=url.openConnection();
    // InputStream is=con.getInputStream();
    // OutputStream os=new FileOutputStream(new File("D:\\test\\aa.html"));
    // int len=0;
    // byte[] buffer=new byte[1024];
    // while ((len=(is.read(buffer)))!=-1) {
    // os.write(buffer, 0, len);
    // }
    // os.close();
    // is.close();
    //*********************************************************************************************************
    // String regex="<a[^>]*href=\"([^\"]*)\"[^>]*>(.*?)<\\/a>";
    String hrefRegex="href=['\"]?(.*?)['\" ]\"";
    StringBuilder sb=new StringBuilder();
    Map<String, String> map=new HashMap<String, String>();
    String href="";
    String text="";
    String matchedText="";
    Pattern pattern=Pattern.compile(hrefRegex);
    File file=new File("D:\\test\\aa.html");
    InputStream is=new FileInputStream(file);
    BufferedReader reader=new BufferedReader(new InputStreamReader(is, "GBK"));
    while (reader.read()!=-1) {
    sb.append(reader.readLine());
    }
    Matcher matcher=pattern.matcher(sb);
    while (matcher.find()) {
    System.out.println(matcher.group(1));
    }
    }
    写了一下,实现了第一第二个需求主要是正则比较难写   坐等正则达人出现