Java实现网页爬虫

public class Demo {
    public static void main(String[] args) throws Exception {
        // 本程序内部异常过多为了简便,不一Try,直接抛给虚拟机
         Long StartTime = System.currentTimeMillis();
         System.out.println("--     欢迎使用飞扬简易网页爬虫程序      --");
         System.out.println("");
         System.out.println("--请输入正确的网址如http://www.baidu.com--");
         Scanner input = new Scanner(System.in);// 实例化键盘输入类
         String webaddress = input.next();// 创建输入对象
         File file = new File("D:" + File.separator + "test.txt");// 实例化文件类对象
        // 并指明输出地址和输出文件名
         Writer outWriter = new FileWriter(file);// 实例化outWriter类
         URL url = new URL(webaddress);// 实例化URL类。
         URLConnection conn = url.openConnection();// 取得链接
         BufferedReader buff = new BufferedReader(new InputStreamReader(
         conn.getInputStream()));// 取得网页数据
         String line = null;
         int i=0;
         String regex = "\\w+@\\w+(\\.\\w+)+";// 声明正则,提取网页前提
         Pattern p = Pattern.compile(regex);// 为patttern实例化
         outWriter.write("该网页中所包含的的邮箱如下所示:\r\n");
         while ((line = buff.readLine()) != null) {
         Matcher m = p.matcher(line);// 进行匹配
         while (m.find()) {
         i++;
         outWriter.write(m.group() + ";\r\n");// 将匹配的字符输入到目标文件
          }
         }
         Long StopTime = System.currentTimeMillis();
         String UseTime=(StopTime-StartTime)+"";
         outWriter.write("--------------------------------------------------------\r\n");
         outWriter.write("本次爬取页面地址:"+webaddress+"\r\n");
         outWriter.write("爬取用时:"+UseTime+"毫秒\r\n");
         outWriter.write("本次共得到邮箱:"+i+"条\r\n");
         outWriter.write("****谢谢您的使用****\r\n");
         outWriter.write("--------------------------------------------------------");
         outWriter.close();// 关闭文件输出操作
         System.out.println(" —————————————————————\t");
         System.out.println("|页面爬取成功,请到D盘根目录下查看test文档|\t");
         System.out.println("|                                         |");
         System.out.println("|如需重新爬取,请再次执行程序,谢谢您的使用|\t");
         System.out.println(" —————————————————————\t");
         }
         }  
    }

通过Java内部自带的URL协议去下载网页,然后通过正则表达式把协议里面我们需要的部分刷选出来,作为写到本地磁盘的test文件里面。这是一个简单的列子,也是一个通常大家都是用的列子。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值