zoukankan      html  css  js  c++  java
  • 正则表达式:网页爬虫

    这是对正则表达式的一个小应用,爬取指定网页的指定内容。这里用的是一个博客网页,抓取邮箱到集合里。

    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;
        }
    
    }
  • 相关阅读:
    C++模板编译模型
    C++继承与构造函数、复制控制
    PHP判断用户是手机端?还是浏览器端访问?
    CentOS6.5搭建LNMP
    星级评分--封装成jquery插件
    扩展thinkphp5的redis类方法
    js实现星级评分之方法一
    js原型与继承
    一个基于Tp3.2(thinkphp3.2)的工会管理系统
    实验楼的php比赛题,网页数据提取。
  • 原文地址:https://www.cnblogs.com/stonewu/p/3692994.html
Copyright © 2011-2022 走看看