java正则表达式之java小爬虫

这个java小爬虫, 功能很简单,只有一个,抓取网上的邮箱。用到了javaI/O,正则表达式。

public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub
//        List<String> list= getEmail();
        List<String> list= getEmailFromWeb();
        for (String string : list) {
            System.out.println(string);
        }
    }

    public static List<String> getEmail() throws IOException{
        //1.读取源文件
        BufferedReader bufferedReader= new BufferedReader(new FileReader("G:\\index.htm"));
        //2.对读取的数据进行规则的匹配
        String regex_email= "\\[email protected]\\w+(\\.[a-zA-Z]{2,3}){1,3}";//[email protected]
        Pattern pattern= Pattern.compile(regex_email);
        String line = null;
        List<String> list= new ArrayList<>();
        while ((line= bufferedReader.readLine())!=null) {
            Matcher matcher= pattern.matcher(line);
            while (matcher.find()) {
                list.add(matcher.group());
            }
        }
        return list;
    }

public static List<String> getEmailFromWeb() throws IOException{

    //1.读取web源文件
    URL url= new URL("http://news.qq.com/zt2015/wxghz/index.htm");
    BufferedReader bufferedReader= new BufferedReader(new InputStreamReader(url.openStream()));
    //2.对读取的数据进行规则的匹配
    String regex_email= "\\[email protected]\\w+(\\.[a-zA-Z]{2,3}){1,2}";
    Pattern pattern= Pattern.compile(regex_email);
    String line = null;
    List<String> list= new ArrayList<>();
    while ((line= bufferedReader.readLine())!=null) {
        Matcher matcher= pattern.matcher(line);
        while (matcher.find()) {
            list.add(matcher.group());
        }
    }
    return list;

    }

output:
[email protected]

哈哈,爬的腾讯新闻里面的一个网页。

时间: 2024-10-14 20:49:43

java正则表达式之java小爬虫的相关文章

java正则表达式及java.util.regex包的学习

参考http://www.cnblogs.com/deerchao/archive/2006/08/24/zhengzhe30fengzhongjiaocheng.html package sunfa.lx; import java.util.Arrays; import java.util.regex.Pattern; /** * java.util.regex包负责对字符序列进行正则表达式匹配 * Pattern负责编译 * Matcher负责匹配 * --------------- * 正

python使用正则表达式编写网页小爬虫

""" 文本处理是当下计算机处理的主要任务,从文本中找到某些有用的信息, 挖掘出某些信息是现在计算机程序大部分所做的工作.而python这中轻量型.小巧的语言包含了很多处理的函数库, 这些库的跨平台性能很好,可移植性能很强. 在Python中re模块提供了很多高级文本模式匹配的功能,以及相应的搜索替换对应字符串的功能. """ """ 正则表达式符号和特殊字符 re1|re2 -----> 匹配正则表达式的re

JAVA 正则表达式截取字符串小例子

例如:从如下字符串 营业时间: 11:30-21:30 修改 分类标签: 无线上网(8) 可以刷卡(7) 朋友聚餐(5) 家庭聚会(5) 商务宴请(4) 情侣约会(4) 可自带酒水(2) 中获取: 11:30-21:30 两个数字:两数字-两个数字:两个数字 因此 正则表达式:\\d{2}:\\d{2}-\\d{2}:\\d{2} 具体代码如下: import java.util.regex.Matcher; import java.util.regex.Pattern; public clas

Java正则表达式防注入小例子

1 /** 2 * 第一行匹配特殊字符: 3 * 第二行匹配开头和结尾都有空格的: 4 * 第三行匹配结尾有空格的 5 * */ 6 private Boolean DetermineChar(String reqData, String respData) { 7 String reg = "@@|==|--|!|\\!|" 8 + "\\s(union|and|or|where|exec|like|from|trancate|char|substr|ascii|count

关于使用JAVA正则表达式报java.lang.StackOverflowError错误问题

最近在使用hadoop做apache日志分析,发现测试数据没问题,但数据一多就出问题,报 java.lang.StackOverflowError错误,最后定位为正则表达式栈溢出,发现某些行的日志数据长度超过了800,所以就会报这个错误, 最后的解决方案是把这一小部分数据舍去掉. 添加如下代码 String log = value.toString(); if(log.length()>=800) return; 在map阶段读入每一行的时候先判断这一行的长度,如果长度超过了800就不对这一行进

JAVA正则表达式:Pattern类与Matcher类详解(转)

java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表现模式. Matcher 一个Matcher对象是一个状态机器,它依据Pattern对象做为匹配模式对字符串展开匹配检查. 首先一个Pattern实例订制了一个所用语法与PERL的类似的正则表达式经编译后的模式,然后一个Matcher实例在这个给定的Pattern实例的模式控制下进行字符串的匹配工作

JAVA正则表达式:Pattern类与Matcher类详解

java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表现模式. Matcher 一个Matcher对象是一个状态机器,它依据Pattern对象做为匹配模式对字符串展开匹配检查. 首先一个Pattern实例订制了一个所用语法与PERL的类似的正则表达式经编译后的模式,然后一个Matcher实例在这个给定的Pattern实例的模式控制下进行字符串的匹配工作

[转载]java正则表达式

转载自:http://butter.iteye.com/blog/1189600 1.正则表达式的知识要点1.正则表达式是什么?正则表达式是一种可以用于模式匹配和替换的强有力的工具.2.正则表达式的优点?更少的代码,更高的效率.3.正则表达式如何使用?在下面的教程中我们将学习到正则表达式的用法.4.正则表达式的缺点?需要花一定的时间学习,这个时间由个人决定,一天或者更久一些.2.正则表达式的各种符号及其含义常用的符号 . 表示任意一个字符\s 空格字符(空格键, tab, 换行, 换页, 回车)

Java正则表达式实用教程

java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.java.util.regex包主要包括以下三个类:Pattern.Matcher和PatternSyntaxException. 一个Pattern是一个正则表达式经编译后的表现模式. 一个Matcher对象是一个状态机器,它依据Pattern对象做为匹配模式对字符串展开匹配检查. PatternSyntaxException是一个非强制异常类,它表示一个正则表达式模式中的语法错误. 首先一个Patte