一个简单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地址等待一切想要抓取的信息.是不是 很有趣呢!
一个简单java爬虫爬取网页中邮箱并保存的更多相关文章
- Java两种方式简单实现:爬取网页并且保存
注:如果代码中有冗余,错误或者不规范,欢迎指正. Java简单实现:爬取网页并且保存 对于网络,我一直处于好奇的态度.以前一直想着写个爬虫,但是一拖再拖,懒得实现,感觉这是一个很麻烦的事情,出现个小错 ...
- python3爬虫爬取网页思路及常见问题(原创)
学习爬虫有一段时间了,对遇到的一些问题进行一下总结. 爬虫流程可大致分为:请求网页(request),获取响应(response),解析(parse),保存(save). 下面分别说下这几个过程中可以 ...
- node:爬虫爬取网页图片
代码地址如下:http://www.demodashi.com/demo/13845.html 前言 周末自己在家闲着没事,刷着微信,玩着手机,发现自己的微信头像该换了,就去网上找了一下头像,看着图片 ...
- python爬虫爬取内容中,-xa0,-u3000的含义
python爬虫爬取内容中,-xa0,-u3000的含义 - CSDN博客 https://blog.csdn.net/aiwuzhi12/article/details/54866310
- erlang 爬虫——爬取网页图片
说起爬虫,大家第一印象就是想到了python来做爬虫.其实,服务端语言好些都可以来实现这个东东. 在我们日常上网浏览网页的时候,经常会看到一些好看的图片,我们就希望把这些图片保存下载,或者用户用来做桌 ...
- java爬虫爬取资源,小白必须会的入门代码块
java作为目前最火的语言之一,他的实用性也在被无数的java语言爱好者逐渐的开发,目前比较流行的爬取资源,用java来做也更简单一些,下面是爬取网页上所有手机型号,参数等极为简便的数据 packag ...
- python爬虫——爬取网页数据和解析数据
1.网络爬虫的基本概念 网络爬虫(又称网络蜘蛛,机器人),就是模拟客户端发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序.只要浏览器能够做的事情,原则上,爬虫都能够做到. 2 ...
- python抓取网页中图片并保存到本地
#-*-coding:utf-8-*- import os import uuid import urllib2 import cookielib '''获取文件后缀名''' def get_file ...
- java爬虫爬取的html内容中空格( )变为问号“?”的解决方法
用java编写的爬虫,使用xpath爬取内容后,发现网页源码中的 全部显示为?(问号),但是使用字符串的replace("?", ""),并不能替换,网上找了一 ...
随机推荐
- JS 的Date对象
原文 http://www.cnblogs.com/towerking/p/3220410.html 一.获取Date对象 在JS中我们可以通过下面一段代码获取本地时间 var currentDate ...
- 年度钜献,108个大数据文档PDF开放下载
1.大数据的开放式创新——吴甘沙 相关阅读:[PPT]吴甘沙:让不同领域的数据真正流动.融合起来,才能释放大数据的价值 下载:大数据的开放式创新——吴甘沙.pdf 2.微软严治庆——让大数据为每个人服 ...
- 2014第2周三Web安全学习
2014第2周三Web安全学习 先记录下自己关于json和xml作为数据传递媒介的差异:在写一个java方法时我将正确结果返回的对象转成json返回,将错误结果根据不同原因以xml形式返回,同事看后有 ...
- 百度地图LV1.5实践项目开发工具类bmap.util.jsV1.1
/** * 百度地图使用工具类-v1.5 * * @author boonya * @date 2013-7-7 * @address Chengdu,Sichuan,China * @email b ...
- 二十六、Jcreator使用初步
摘自http://blog.csdn.net/liujun13579/article/details/7751464 二十六.Jcreator使用初步 Jcreator是一个小巧灵活的Java开发工具 ...
- 【转】Android LCD(四):LCD驱动调试篇
关键词:android LCD TFTSN75LVDS83B TTL-LVDS LCD电压背光电压 平台信息:内核:linux2.6/linux3.0系统:android/android4.0 平台 ...
- Modulo Sum(背包 + STL)
Modulo Sum time limit per test 2 seconds memory limit per test 256 megabytes input standard input o ...
- 关于Oracle SQL/82标准和SQL/92标准
在ORACLE9i之前,oracle语法基础是SQL/86标准,9i及之后的版本中支持SQL/92标准.基表信息:products.purchases和product_types SQL> se ...
- zookeeper 丢失事件/miss event
今天在统计页面上发现有个节点丢失了,经过仔细分析后,发现同一个节点上的二个应用(同时监控zk)其中一个丢失了一个event,检查zk cluster没有发现异常... 通过网络搜寻,出现miss ev ...
- Angular之作用域与事件(转)
学习Angular,首先要理解其作用域机制. Angular应用是分层的,主要有三个层面:视图,模型,视图模型.其中,视图很好理解,就是直接可见的界面,模型就是数据,那么视图模型是什么呢?是一种把数据 ...