`
chenpenghui
  • 浏览: 39142 次
  • 性别: 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,抛砖引玉了。

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

分享到:
评论

相关推荐

    邮件抓取器(本地和网络)全部源码

    【邮件抓取器(本地和网络)全部源码】是一个编程项目,主要功能是通过特定算法和逻辑,从本地文件和互联网网页中提取电子邮件地址。这个工具可能使用了正则表达式、网络爬虫技术以及文件解析技术来实现。下面将详细...

    邮件抓取软件

    【邮件抓取软件】是一种专门用于批量收集和提取电子邮件地址的工具,主要应用于市场营销、数据分析或者信息采集等领域。这类软件通常具有自动化、高效的特点,能够帮助用户快速地从互联网上获取大量的邮件地址,以...

    万能邮件采集器是万能的!万能邮件

    万能邮件采集器的核心功能在于其强大的搜索引擎抓取能力。只要提供包含邮箱的网页链接,它就能快速、准确地从网页中提取出电子邮件地址。这种高效的数据采集方式大大节省了手动搜集的时间,尤其适用于需要处理大量...

    NET版抓取MAIL并群发邮件的小程序[源码]

    尽管开发者提到程序开发较为仓促,没有进行过多优化,但已实现了基础功能,这意味着它可以完成邮件抓取和群发的基本任务。这为后续的优化和扩展提供了基础。 综上所述,这个.NET程序涉及了网络爬虫、多线程编程、...

    圣者网页邮件采集器

    在使用圣者网页邮件采集器的过程中,用户还可以自定义设置抓取深度、速度控制以及导出格式等,以适应不同的需求。同时,软件通常会有日志记录功能,以便用户追踪采集过程和结果。 总的来说,圣者网页邮件采集器是一...

    键盘记录邮件发送

    而非法的键盘记录器,也被称为键盘抓取器或键盘间谍,常常被黑客用来窃取用户信息,实施网络犯罪。 键盘记录器的工作原理通常是通过捕获操作系统发送给硬件的键盘事件,或者通过监控系统级别的键盘钩子来实现。一旦...

    电子邮件地址搜集器

    电子邮件地址搜集器是一种工具,主要用于自动化地从网络上抓取并收集电子邮件地址。这个特定的程序利用了Winsock库来实现网络通信,Winsock是Windows操作系统中的一个核心组件,为应用程序提供TCP/IP协议的访问接口...

    经典云技术邮件营销系统 (核心技术邮件采集、SMTP探测).

    "经典云邮件营销系统"提供全自动的邮件地址采集功能,能够高效地从互联网上抓取目标用户的邮箱信息。这一过程可能涉及以下几个关键技术: 1. 数据爬取:系统通过网络爬虫技术,遍历网页,抓取公开的电子邮件地址。...

    淘宝卖家信息抓取器C#源代码

    本项目"淘宝卖家信息抓取器C#源代码"就是一个典型的示例,它利用C#编程语言实现了从淘宝网站上抓取卖家信息的功能。 首先,C#是微软开发的一种面向对象的编程语言,它具有丰富的类库和强大的.NET框架支持,适合开发...

    使用Jsoup抓取网页关键信息并入库 ip天气查询并发送邮件

    本项目将讲解如何使用Jsoup来抓取网页的关键信息,并将其存储到数据库中,同时实现通过IP地址查询天气并以邮件形式发送。 首先,Jsoup提供了简洁的API,使得解析HTML变得易如反掌。我们可以利用Jsoup的`connect()`...

    C# 爬虫(初步)邮件自采集器

    二、邮件自采集器设计 邮件采集通常涉及以下几个环节: 1. **URL 目标**:确定要抓取邮件的网页,可能是一个公开的联系人页面,或者需要登录的论坛等。理解目标网页的结构和数据存储方式是成功爬取的关键。 2. **...

    delphi网页邮件抓发系统.rar

    1. 邮件抓取模块:利用Delphi的TIdIMAP4组件,连接到邮件服务器,通过查询命令获取邮件列表,再根据需要下载邮件内容。同时,系统可能需要处理各种认证机制,如SSL/TLS加密,确保通信安全。 2. 邮件发送模块:使用...

    delphi网页邮件抓发系统

    5. **任务调度模块**:为了实现定时抓取,系统应包含一个任务调度器,可以根据设定的时间间隔自动执行邮件抓取任务。这可以借助Windows的任务计划程序API,或者Delphi自身的TTimer组件。 6. **错误处理和日志记录**...

    delphi网页邮件抓发系统.zip

    7. **多线程处理**:如果系统同时处理多个邮件抓取或发送任务,那么可能使用了多线程技术,以提高并发性能。Delphi支持线程编程,可以创建并管理TThread类的实例。 8. **数据库交互**:为了存储和检索抓取的邮件...

    安卓listview相关相关-实现浏览新浪新闻jsoup抓取网页信息listview列表下拉刷新.rar

    本项目"安卓listview相关-实现浏览新浪新闻jsoup抓取网页信息listview列表下拉刷新.rar"旨在演示如何结合Jsoup库从新浪新闻网站抓取信息,并通过ListView展示这些信息,同时实现下拉刷新功能,提升用户体验。...

    dephi网页邮箱自动提取+邮件群发源码

    - **代码结构**:源码可能会包含几个主要的模块,如网页抓取器、邮件地址解析器、邮件构建器和邮件发送器,每个模块都有明确的职责。 - **设计模式**:可能运用了工厂模式来创建邮件发送对象,或者使用观察者模式...

Global site tag (gtag.js) - Google Analytics