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

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. WPF笔记(1.6 数据绑定)——Hello,WPF!

    原文:WPF笔记(1.6 数据绑定)--Hello,WPF! 这个一节都是在讲一个数据绑定的示例.功用:输入姓和名,点击Add按钮,ListBox增加一条记录,永远是字符串“name: nick”:L ...

  2. Luci流程分析(openwrt下)

    1. 页面请求: 1.1. 代码结构 在openwrt文件系统中,lua语言的代码不要编译,类似一种脚本语言被执行,还有一些uhttpd服务器的主目录,它们是: /www/index.html cgi ...

  3. cf478B Random Teams

    B. Random Teams time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...

  4. ZOJ3574(归并排序求逆数对)

    Under Attack II Time Limit: 5 Seconds      Memory Limit: 65536 KB Because of the sucessfully calcula ...

  5. Can you find it? 分类: 二分查找 2015-06-10 19:55 5人阅读 评论(0) 收藏

    Description Give you three sequences of numbers A, B, C, then we give you a number X. Now you need t ...

  6. tangible T4 Editor 2.2.3 for VS2010 / VS2012 / VS2013 Preview

    tangible T4 Editor 2.2.3 for VS2010 / VS2012 / VS2013 Preview angible T4 Editor 2.2.3 plus UML model ...

  7. windows下启动/关闭Sybase数据库服务器

    启动.关闭Sybase数据库服务器 一.启动Sybase服务器 在windows下介绍两种方法启动Sybase数据库服务器. 1.通过服务器管理器 依次打开控制面板>管理工具>服务 管理窗 ...

  8. mysql(5.7)在CentOs7下的安装、配置与应用

    和之前版本的mysql有一些不同,现把完整过程记下来,或许对新手来说有用. 本文描述的安装是采用通用的二进制压缩包(linux - Generic)以解压方式安装,相当于绿色安装了.   一.下载通用 ...

  9. CAS SSO

    1.      CAS 简介 1.1.  What is CAS ? CAS ( Central Authentication Service ) 是 Yale 大学发起的一个企业级的.开源的项目,旨 ...

  10. Letter of application, e-mail version

    Subject line: (logical to recipient!) Application for sales representative for mid-Atlantic area Apr ...