一个简单java爬虫爬取网页中邮箱并保存

此代码为一十分简单网络爬虫,仅供娱乐之用。




java代码如下:

package tool;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.io.Writer;
import java.net.URL;
import java.net.URLConnection;
import java.sql.Time;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Ma {
    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("E:" + File.separator + "爬虫邮箱统计文本.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("|页面爬取成功,请到E盘根目录下查看test文档|\t");
        System.out.println("|                                         |");
        System.out.println("|如需重新爬取,请再次执行程序,谢谢您的使用|\t");
        System.out.println(" —————————————————————\t");
    }
}


txt截图如下:



测试网址:http://tieba.baidu.com/p/2976611415,通过此例读者可以轻松抓取网页上的邮箱,如果读者对正则表达式有所了解,那么

不仅可以抓取邮箱,还可以抓取电话号码,ip地址等待一切想要抓取的信息.是不是 很有趣呢!



转载请注明作者:小刘

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值