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

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地址等待一切想要抓取的信息.是不是 很有趣呢!

一个简单java爬虫爬取网页中邮箱并保存的更多相关文章

  1. Java两种方式简单实现:爬取网页并且保存

    注:如果代码中有冗余,错误或者不规范,欢迎指正. Java简单实现:爬取网页并且保存 对于网络,我一直处于好奇的态度.以前一直想着写个爬虫,但是一拖再拖,懒得实现,感觉这是一个很麻烦的事情,出现个小错 ...

  2. python3爬虫爬取网页思路及常见问题(原创)

    学习爬虫有一段时间了,对遇到的一些问题进行一下总结. 爬虫流程可大致分为:请求网页(request),获取响应(response),解析(parse),保存(save). 下面分别说下这几个过程中可以 ...

  3. node:爬虫爬取网页图片

    代码地址如下:http://www.demodashi.com/demo/13845.html 前言 周末自己在家闲着没事,刷着微信,玩着手机,发现自己的微信头像该换了,就去网上找了一下头像,看着图片 ...

  4. python爬虫爬取内容中,-xa0,-u3000的含义

    python爬虫爬取内容中,-xa0,-u3000的含义 - CSDN博客 https://blog.csdn.net/aiwuzhi12/article/details/54866310

  5. erlang 爬虫——爬取网页图片

    说起爬虫,大家第一印象就是想到了python来做爬虫.其实,服务端语言好些都可以来实现这个东东. 在我们日常上网浏览网页的时候,经常会看到一些好看的图片,我们就希望把这些图片保存下载,或者用户用来做桌 ...

  6. java爬虫爬取资源,小白必须会的入门代码块

    java作为目前最火的语言之一,他的实用性也在被无数的java语言爱好者逐渐的开发,目前比较流行的爬取资源,用java来做也更简单一些,下面是爬取网页上所有手机型号,参数等极为简便的数据 packag ...

  7. python爬虫——爬取网页数据和解析数据

    1.网络爬虫的基本概念 网络爬虫(又称网络蜘蛛,机器人),就是模拟客户端发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序.只要浏览器能够做的事情,原则上,爬虫都能够做到. 2 ...

  8. python抓取网页中图片并保存到本地

    #-*-coding:utf-8-*- import os import uuid import urllib2 import cookielib '''获取文件后缀名''' def get_file ...

  9. java爬虫爬取的html内容中空格( )变为问号“?”的解决方法

    用java编写的爬虫,使用xpath爬取内容后,发现网页源码中的 全部显示为?(问号),但是使用字符串的replace("?", ""),并不能替换,网上找了一 ...

随机推荐

  1. python多线程简单例子

    python多线程简单例子 作者:vpoet mail:vpoet_sir@163.com import thread def childthread(threadid): print "I ...

  2. 求解答,Android源码编译时怎样添加第三方jar包

    各位大神好,遇到的问题如标题. 我用Eclipse写了一个android工程,但是这个工程需要到SDK的隐藏类,所有想在源码下编译,但是每次mm之后,都会出现错误,提示是找不到对应的类. 我需要加入的 ...

  3. Java 获取Linux 的IP地址

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...

  4. Can you solve this equation?(二分)

    Can you solve this equation? Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Ja ...

  5. PreferenceFragment 使用 小结

    Perference也就是我们常说的偏好设置,首选项设置,能够自己主动保存一些数据,比如我们在上一次使用的时候的一些内容,则在下一次启动后依旧生效,而不须要再进行配置.当用户改变设置时,系统就会更新S ...

  6. 提交App,请求Apple加急审核

    转载自:http://blog.csdn.net/showhilllee/article/details/19541493 提交完毕后进入加急审核页面. 链接:https://developer.ap ...

  7. ARM9嵌入式学习笔记(2)-Vi使用

    ARM9嵌入式学习笔记(2) 实验1-1-3 Vi使用 vi创建文件vi hello.c:vi smb.conf-打开文件smb.conf i键-插入模式:esc键-命令行模式::-底行模式: 底行模 ...

  8. Android SQLite的使用1(非原创)

    1.继承SQLiteOpenHelper :public class MyOpenHelper extends SQLiteOpenHelper {} 2.重写下面3个方法 package com.e ...

  9. JS--Div中数据滚动到最后一条重新从头开始滚动

    在做东西时要求让数据滚动,且滚动到最后一条时,从头再开始滚动,样图如下:

  10. C#调用SAPWebService

    其实和调用其它WebService 没有很大不同  只是不了解SAP的人 可能不太明白 SAP接口中的相关参数 //调用接口 , 创建对象 ServiceReference1.Z_IF_MM_VEND ...