web

来源:互联网 发布:电子商务协同算法 编辑:程序博客网 时间:2024/05/21 08:19
/*网页爬虫
 * 
 * 爬邮箱、爬关键字

 * */

/* 1、读取文件
2、对读取的数据进行规则匹配,从中获取符合规则的数据
3、将符合规则的数据储存到集合中*/

[java] view plaincopyprint?
  1. package regexTest;  
  2.   
  3. import java.io.BufferedReader;  
  4. import java.io.FileNotFoundException;  
  5. import java.io.FileReader;  
  6. import java.io.InputStreamReader;  
  7. import java.net.URL;  
  8. import java.util.ArrayList;  
  9. import java.util.List;  
  10. import java.util.regex.Matcher;  
  11. import java.util.regex.Pattern;  
  12.   
  13. /** 
  14.  * @author Administrator  Alt+Shift+j 
  15.  * 
  16.  */  
  17.   
  18. /*网页爬虫 
  19.  *  
  20.  * 爬邮箱、爬关键字 
  21.  * */  
  22. public class RegexTest {  
  23.       
  24.     public static void main(String[] args){  
  25.           
  26.         try {  
  27.             List<String> list=getMail();  
  28.             System.out.println("爬到的资源");  
  29.             for(String mail:list){  
  30.                 System.out.println("====>"+mail);  
  31.             }  
  32.         } catch (Exception e) {  
  33.             // TODO Auto-generated catch block  
  34.             e.printStackTrace();  
  35.         }  
  36.           
  37.     }  
  38. /////////////////////////////////////////////     
  39. /*  1、读取文件 
  40.     2、对读取的数据进行规则匹配,从中获取符合规则的数据 
  41.     3、将符合规则的数据储存到集合中*/  
  42.       
  43.     public static List<String> getMail() throws Exception{  
  44.         ///从本地文件中爬  
  45.         //BufferedReader br=new BufferedReader(new FileReader("d:\\mail.html"));  
  46.           
  47.         ///从网络文件中爬  
  48.         URL url=new URL("http://www.hao123.com/index.html");  
  49.         BufferedReader br=new BufferedReader(new InputStreamReader(url.openStream()));  
  50.           
  51.         String mail_regex="\\w+@\\w+(\\.\\w+)+";///邮箱的匹配规则  
  52.         Pattern p =Pattern.compile(mail_regex);//将规则封装成对象  
  53.           
  54.         List<String> list=new ArrayList<String>();  
  55.           
  56.         String line=null;  
  57.         while((line=br.readLine())!=null){  
  58.             Matcher m=p.matcher(line);//一行一行地进行匹配  
  59.             while(m.find()){  
  60.                 //m.group()找到就放进组里  
  61.                 list.add(m.group());  
  62.             }  
  63.         }  
  64.         return list;  
  65.     }  
  66.       
  67. }  
原创粉丝点击