dadi723 2017-02-09 13:10 采纳率: 0%
浏览 1125
已采纳

用Java抓取网页内容筛选邮箱的程序,运行无结果(没有报错)

问题出在哪里?可能的问题已经在注释中标出
代码如下

 package test;
import java.io.*;
import java.net.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class email {
    public static void main(String[] args) {
        String regex="[a-zA-Z_0-9]+@(\\.[a-zA-Z_0-9]{2,3})+";
        String s="";
        String line=null;
        try{
        URL url=new URL("http://tieba.baidu.com/p/4232750852");
        HttpURLConnection uc=(HttpURLConnection)url.openConnection();
        BufferedReader br=new BufferedReader(new InputStreamReader(uc.getInputStream()));
        PrintWriter pw=new PrintWriter(new FileWriter("d:\\data.txt"),true);
        while((line=br.readLine())!=null){
            s=s+line;//如果s用StringBuilder或者StringBuffer代替(s=null)则抛出  NullPointerException
        }
        Pattern p=Pattern.compile(regex);
        Matcher m=p.matcher(s);
        while(m.find()){
            pw.println(m.group());
        }
        pw.close();
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}

  • 写回答

4条回答 默认 最新

  • qq345oo 2017-02-10 01:43
    关注
     package com.zzk.ceshi;
    
    import java.io.BufferedReader;
    import java.io.FileWriter;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.net.HttpURLConnection;
    import java.net.URL;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    public class GetMail {
    
        public static void main(String[] args) {
             String regex="\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[a-zA-Z]{2,}\\b";
    //          String s="";
                StringBuilder s = new StringBuilder("");
                String line=null;
                try{
                URL url=new URL("http://tieba.baidu.com/p/4232750852");
                HttpURLConnection uc=(HttpURLConnection)url.openConnection();
                BufferedReader br=new BufferedReader(new InputStreamReader(uc.getInputStream()));
                PrintWriter pw=new PrintWriter(new FileWriter("d:\\data.txt"),true);
                while((line=br.readLine())!=null){
                    //s=s+line;//如果s用StringBuilder或者StringBuffer代替(s=null)则抛出  NullPointerException
                    s.append(line);
                }
                Pattern p=Pattern.compile(regex);
                Matcher m=p.matcher(s);
                while(m.find()){
                    pw.println(m.group());
                }
                pw.close();
                }catch(Exception e){
                    e.printStackTrace();
                }
            }
    
    
    }
    
    
    

    图片说明

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 python:excel数据写入多个对应word文档
  • ¥60 全一数分解素因子和素数循环节位数
  • ¥15 ffmpeg如何安装到虚拟环境
  • ¥188 寻找能做王者评分提取的
  • ¥15 matlab用simulink求解一个二阶微分方程,要求截图
  • ¥30 乘子法解约束最优化问题的matlab代码文件,最好有matlab代码文件
  • ¥15 写论文,需要数据支撑
  • ¥15 identifier of an instance of 类 was altered from xx to xx错误
  • ¥100 反编译微信小游戏求指导
  • ¥15 docker模式webrtc-streamer 无法播放公网rtsp