请问如何用htmlparser得到某网页中所有的邮箱地址 ?

解决方案 »

  1.   

    把答案也贴上来吧...
    /*
     * @brief: 得到某个网页中所有的邮箱地址
     * @param: 网页的url
     */
    public void getEmails( String url )
    {
    System.out.println(url+"中的邮箱:");
            try {        
                Parser parser = new Parser();
                parser.setURL(url.toString());
                parser.setEncoding(parser.getEncoding());
                for (NodeIterator i = parser.elements (); i.hasMoreNodes(); )
                {
                 Node node = i.nextNode();
          String linkText = node.toString();
         
         Pattern p=Pattern.compile("[\\w[.-]]+@[\\w[.-]]+\\.[\\w]+");//使用正则表达式验证字符格式编译
         Matcher m=p.matcher(linkText);
         while(m.find()){
         String email = m.group();
         System.out.println(email);
         pushEmail(email);
         }
                }
            }
            catch (Exception e) {
    // TODO: handle exception
    }
    }
      

  2.   


    public void get(String text){
    String regEx = "\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*";
    Pattern p = Pattern.compile(regEx);
    Matcher m = p.matcher(text);
    int i = 0;
    while(m.find()){
    i++;
    String ss = m.group();
    System.out.println(ss);
    }
    System.out.println(i);
    }

    public String getText(String url) {
    StringBuffer sb = new StringBuffer("");
    try {
    URL u = new URL(url);
    BufferedReader br = new BufferedReader(new InputStreamReader(u
    .openStream()));
    String s = "";
    while ((s = br.readLine()) != null) {
    sb.append(s);
    }
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    return sb.toString();
    }
      

  3.   

    不错,htmlParse + 正则就可以搞定