/*网页爬虫-从服务器或本地文件获取邮件地址
网页爬虫(蜘蛛)
*/
import java.io.*;
import java.util.regex.*;
import java.net.*;
class RegexTest2
{
public static void main(String[] args) throws IOException
{
//System.out.println("Hello World!");
getMails();
}
public static void getMails_1() throws IOException//从Tomcat服务器
{
URL rul = new URL("http://192.168.1.254:8080/myweb/mail.html");
URLConnection con = url.openConnection();//获取连接器.URLConnection,openConnection()
// 返回一个 URLConnection 对象,它表示到 URL 所引用的远程对象的连接。
BufferedReader bufIn = new BufferedReader(new InputStreamReader(conn.getInputStream()));//InputStream getInputStream()
// 返回从此打开的连接读取的输入流。
String line = null;
String mailreg = "\\w+@\\w+(\\.\\w+)+";//正则过滤器
Pattern p = Pattern.compile(mailreg);//编译封装reg. pattern 正则表达式的编译表示形式。
//指定为字符串的正则表达式必须首先被编译为此类的实例。
//然后,可将得到的模式用于创建 Matcher 对象,
//依照正则表达式,该对象可以与任意字符序列匹配。
//执行匹配所涉及的所有状态都驻留在匹配器中,所以多个匹配器可以共享同一模式。
while ((line=bufIn.readLine())!=null)
{
//System.out.println(line);
Matcher m = p.matcher(line);//返回Matcher,matcher(CharSequence input)
//创建匹配给定输入与此模式的匹配器。
while (m.fine())// boolean find()
// 尝试查找与该模式匹配的输入序列的下一个子序列。
{
System.out.println(m.group());//String group() 打印在控制台上
// 返回由以前匹配操作所匹配的输入子序列。
}
}
}
/*
获取指定文档中的邮件地址.
使用获取功能.Pattern Matcher
*/
public static void getMails() throws IOException//从本地文件
{
BufferedReader bufr = new BufferedReader(new FileReader("mail.txt"));
String line = null;
String mailreg = "\\w+@\\w+(\\.\\w+)+";
Pattern p = Pattern.compile(mailreg);//编译封装reg. pattern 正则表达式的编译表示形式。
//指定为字符串的正则表达式必须首先被编译为此类的实例。
//然后,可将得到的模式用于创建 Matcher 对象,
//依照正则表达式,该对象可以与任意字符序列匹配。
//执行匹配所涉及的所有状态都驻留在匹配器中,所以多个匹配器可以共享同一模式。
while ((line=bufr.readLine())!=null)
{
//System.out.println(line);
Matcher m = p.matcher(line);//返回Matcher,matcher(CharSequence input)
//创建匹配给定输入与此模式的匹配器。
while (m.fine())// boolean find()
// 尝试查找与该模式匹配的输入序列的下一个子序列。
{
System.out.println(m.group());//String group()
// 返回由以前匹配操作所匹配的输入子序列。
}
}
}
}
正则表达式-网页爬虫-从服务器或本地文件获取邮件地址
最新推荐文章于 2021-10-12 15:12:19 发布