`
chenpenghui
  • 浏览: 37880 次
  • 性别: Icon_minigender_1
  • 来自: 台州
社区版块
存档分类
最新评论

邮件抓取器的实现

    博客分类:
  • JAVA
阅读更多

朋友要一个邮件抓取器,边查边写了一个:

三个类

1.MyFrame,就是一些布局和事件。

 

package com.zhuzhu;

import java.awt.Button;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Label;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;




public class MyFrame  {
	public static void main(String args[]){
		TextField tfin,tfout;	
		Frame f = new Frame();
		tfin = new TextField(10);
		tfin.setText("输入路径");
		tfout = new TextField(10);
		tfout.setText("输出路径");
		Button b1 = new Button("提取邮件地址");
		Monitor monitor = new Monitor(tfin,tfout);
		b1.addActionListener(monitor);
		FlowLayout layout =new FlowLayout();
		f.setLayout(layout);
		f.add(tfin);
		f.add(tfout);
		f.add(b1);
		f.setLocation(300, 300);
		f.setSize( 300,80);
		f.setBackground( Color.white);
		f.setResizable(true);
		f.setVisible( true);
	}

}

 2.Monitor监听器类,对事件进行监听。

 

package com.zhuzhu;

import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;

class Monitor implements ActionListener {
	TextField tfin,tfout;
	public Monitor(TextField tfin,TextField tfout){
		this.tfin = tfin;
		this.tfout = tfout;
	}
	MyFrame tf = null;
	
	public Monitor(MyFrame tf) {
		this.tf = tf;
	}
	
    public void actionPerformed(ActionEvent e) { 	
    	String indir = (String)tfin.getText();
    	String outdir = (String)tfout.getText();
    	System.out.println(indir);
    	System.out.println(outdir);
    	Spider sp = new Spider();
    	try {
			sp.readfile(indir,outdir);
		} catch (IOException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}  
    }
  
}

 3.Spider匹配地址的作用,system.out重定向的自定的流。

 

package com.zhuzhu;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Spider {

	public void readfile(String indir,String outdir) throws IOException {
		PrintStream out = new PrintStream(outdir);
		try {
			BufferedReader br = new BufferedReader(new FileReader(indir));
			String line = "";
			StringBuffer sb = new StringBuffer();
			while ((line = br.readLine()) != null) {
				sb.append(line);
			}
			spider(sb.toString(), out);
		} catch (Exception e) {
		}

	}

	private static void spider(String line, PrintStream out) throws IOException {
		try {
			String regx = "[\\w[.-]]+@[\\w[.-]]+\\.[\\w]{3}";
			Pattern p = Pattern.compile(regx);
			Matcher m = p.matcher(line);
			System.setOut(out);
			while (m.find()) {
				System.out.append(m.group());
				System.out.println();
			}
			out.close();
		} catch (Exception e) {
		}
	}

}

 运行了一下,貌似可以用。可能有很多bug,抛砖引玉了。

付上代码。下一步写如何自动转发。

分享到:
评论

相关推荐

    分布式通用爬虫平台(可视化生成css选择器,自定义设置抓取流程,正文自动提取,邮件通知).zip

    爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL...

    website_extractor:这是一个内存中的网络爬虫和抓取工具,用于从公共网站小规模地提取数据。 当前的实现采用 .csv 的 url 并抓取站点,提取有关站点的基本信息,如电子邮件、电话号码、地址和指定的术语

    电子邮件 地址 触发条件 将提取的数据放入 .csvs 使用这个工具 确保您的设置正确( config.php ) 将网站 ID、名称和 url 的列表放入targets.csv文件中 确保它有 linux 行尾( \n ) 或者确保你更新了config.php的...

    VB网络编程实例

    ◆ 21.htm 打开器并进入指定网址 ◆ 22.htm 打开一个直接到自己主页的器 ◆ 23.htm 得到用户的IP地址 ◆ 24.htm 电话拨号 ◆ 25.htm 电子邮件的标准格式 (RFC 822) ◆ 26.htm 断开...

    《Delphi 6灵感设计》范例源代码

    学习单51 实现TColor值到RGB值的变换 学习单52 检测声卡是否安装 学习单53 编写网络浏览器 学习单54 获取主机的IP地址 学习单55 简单邮件发送软件 学习单56 获取本机的MAC地址 学习单57 实现PING链接 学习单58 域名...

    C#开发典型模块大全(光盘)

    8.3.8 删除邮件实现 8.3.9 用户管理 第9章 短信群发模块 9.1 设计思路 9.2 关键技术 9.2.1 短信猫中API函数的使用 9.2.2 短信猫中的短信接收格式 9.2.3 窗体间的互操作 9.2.4 锁定模块主窗体 9.2.5 使用ADO.NET...

    C#开发典型模块大全(光盘)第一部分

    8.3.8 删除邮件实现 8.3.9 用户管理 第9章 短信群发模块 9.1 设计思路 9.2 关键技术 9.2.1 短信猫中API函数的使用 9.2.2 短信猫中的短信接收格式 9.2.3 窗体间的互操作 9.2.4 锁定模块主窗体 9.2.5 使用ADO.NET...

    C#开发典型模块大全(光盘)第二部分

    8.3.8 删除邮件实现 8.3.9 用户管理 第9章 短信群发模块 9.1 设计思路 9.2 关键技术 9.2.1 短信猫中API函数的使用 9.2.2 短信猫中的短信接收格式 9.2.3 窗体间的互操作 9.2.4 锁定模块主窗体 9.2.5 使用ADO.NET...

    C#开发典型模块大全

    8.3.8 删除邮件实现 198 8.3.9 用户管理 198 第9章 短信群发模块 9.1 设计思路 202 9.2 关键技术 202 9.2.1 短信猫中API函数的使用 202 9.2.2 短信猫中的短信接收格式 205 9.2.3 窗体间的互操作 205...

    VC++.NET案例开发集锦源代码.part1

    案例14 抓取指定区域的图像 案例15 动画范例——飞碟绑架地球人 第三章 多媒体应用 案例1 flash 动画播放器 案例2 OpenGL屏幕保护程序 案例3 显示器的分辨率调整 案例4 五子棋程序 案例5 制作Windows媒体...

    Python Cookbook

    3.14 用Python实现的简单加法器 133 3.15 检查信用卡校验和 136 3.16 查看汇率 137 第4章 Python技巧 139 引言 139 4.1 对象拷贝 140 4.2 通过列表推导构建列表 144 4.3 若列表中某元素存在则返回之 146 ...

    风讯站点管理系统2004.I.0225(第2版)

    在线发送邮件(需要你的服务器支持相应组件) ?新闻可以任意转移功能 ?加强HTML编辑器 ?新闻统计功能(可以随时统计新闻) ?相关联接、新闻来源管理 ?自动分页功能 ?修改一些不利于操作的地方 ?标题可以...

    商剑网络信息万能采集器(商剑采集-完全免费!!!)

    由于采用了人工智能、结构化及非结构化通用采集算法,因此商剑信息采集软件可以通用采集任何结构的信息,将网络雷达、舆论监督、数据库采集、文章采集、新闻采集、邮件采集、关键字采集、结构化信息采集、非结构化...

    C#基类库(苏飞版)

    1.C#HttpHelper,Httpwebrequest,请求时无视编码,无视证书,无视Cookie,网页抓取 主要是实现了HTTP协议的GET|POST请求时的无视编码,无视证书,设置代理,自动获取Cookie的功能。 访问数据库相关 1.SqlHelper类 ...

    搭建SSH框架的代码

    7.包含邮件、短信发送接口有代理,天气抓取、还有bean与json与map等转化,包含各种时间计算,支持servlet可以详细看验证码类。 8.有全文检索工具类包含索引的创建、查询等,自动分页Bean,Excel读取/导出等功能、...

    B2Bbuilder(B2B电子商务网站) 7.0.1.zip

    图库模型和网页编辑器支持多选传图,支持自定义图片水印功能,可设置位置,格式,内容,从而实现图片防盗功能 统计功能 支持会员商铺统计,及整站统计,轻松了解整站发展状态,信息量,以及会员活跃度 阅读记录 ...

    Delphi开发范例宝典目录

    实例137 抓取鼠标形状 171 3.8 图像识别 172 实例138 查看图片的像素 172 实例139 获取指定点的RGB值 173 实例140 地图地理定位 174 实例141 车牌号码识别 176 3.9 图像工具 177 实例142 获取图片...

    Java网络爬虫EggJava.zip

    Parser是一个解析器,用来方便用户提取抓取数据中自己需要的东西 Handler是一个处理器,用来处理每次抓取之后的操作 Selector是一个选择器,用来判断是否是我们所需要的内容 ...

Global site tag (gtag.js) - Google Analytics