正则表达式_网页爬虫

其实就一个程序用于在互联网中获取符合指定规则的数据。 

 

爬取邮箱地址

 爬取本地中的文件:

import java.io.BufferedReader;

import java.io.FileReader;

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 RegexTest {



    public static void main(String[] args) throws IOException {



        

        List<String> list = getMails();

        

        for(String mail : list){

            System.out.println(mail);

        }

    }

    

    



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

        

        //1,读取源文件。

        BufferedReader bufr = new BufferedReader(new FileReader("F:\\IO\\mail.html"));

        

        //2,对读取的数据进行规则的匹配。从中获取符合规则的数据.

        String mail_regex = "\\w+@\\w+(\\.\\w+)+";

        

        List<String> list = new ArrayList<String>();

        

        

        Pattern p = Pattern.compile(mail_regex);

        

        String line = null;

        

        while((line=bufr.readLine())!=null){

            

            Matcher m = p.matcher(line);

            while(m.find()){

                //3,将符合规则的数据存储到集合中。

                list.add(m.group());

            }

            

        }

        return list;

        

    }

}

 爬取网络中的:

import java.io.BufferedReader;

import java.io.FileReader;

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 RegexTest {



    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://192.168.1.100:8080/myweb/mail.html");

        

        BufferedReader bufIn = new BufferedReader(new InputStreamReader(url.openStream()));

                

        //2,对读取的数据进行规则的匹配。从中获取符合规则的数据.

        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;

    }

}

 

你可能感兴趣的:(正则表达式)