正则表达式:网页爬虫
这是对正则表达式的一个小应用,爬取指定网页的指定内容。这里用的是一个博客网页,抓取邮箱到集合里。
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.URL; import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexDemo2 { /** * @param args * @throws IOException */ /* * 网页爬虫:其实就一个程序用于在互联网中获取符合指定规则的数据。 爬取邮箱地址。 */ public static void main(String[] args) throws IOException { List<String> list = getMailsByWeb(); for (String mail : list) { System.out.println(mail); } } public static List<String> getMailsByWeb() throws IOException { URL url = new URL("http://blog.sina.com.cn/s/blog_515617e60101e151.html"); BufferedReader bufIn = new BufferedReader(new InputStreamReader( url.openStream())); // 对读取的数据进行规则的匹配。从中获取符合规则的数据. String mail_regex = "\\w+@\\w+(\\.\\w+)+"; List<String> list = new ArrayList<String>(); Pattern p = Pattern.compile(mail_regex); String line = null; while ((line = bufIn.readLine()) != null) { Matcher m = p.matcher(line); while (m.find()) { // 3,将符合规则的数据存储到集合中。 list.add(m.group()); } } return list; } }