程序很小,但是功能却很强大,很有意思。当你输入一个网页的url地址之后,就能把网页中的全部电子邮箱地址揪出来。主要运用了URL类和正则表示式。不过程序有一个bug。当电子邮箱的地址跨越两行时不能很好的处理。当然也有一个不太理想的解决方案:就是把网页内全部读入一个字符串变量中再进行处理。
下面是程序的代码:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class EmailSpider {
public static void main(String[] args) {
if (args.length > 0) {
try {
URL url = new URL(args[0]);//创建url对象
InputStream in = url.openStream();
BufferedReader r=new BufferedReader(new InputStreamReader(in));
String line="";
while((line=r.readLine())!=null){
parse(line);
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
private static void parse(String line) {
Pattern p = Pattern.compile("[\\w[.-]]+@[\\w[.-]]+\\.[\\w]+");
Matcher m = p.matcher(line);
while(m.find()) {
System.out.println(m.group());
}
}
}