《黑马程序员》 javaweb网页爬虫技术的实现

------- android培训java培训、期待与您交流! ----------
package cn.itcast.p6.regex;
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 RegexDemo6 {
 /**
  * @param args
  */
 /**
  *网页爬虫技术: 
  *  其实就是一个程序在网页中获取符合指定规则的数据
  *  爬取邮箱地址
  *     A本地文件或网络中的m
  * @throws IOException 
  * */
 public static void main(String[] args) throws IOException {
  List<String> listu=getMails_3();
  for(String li:listu){
   System.out.println(li);
  }
 }
 
 public static List<String> getMails_3() throws IOException{
  //获取网站中的邮箱:
  URL url=new URL("http://192.168.123.209:8080/myweb/test.html");
  
  //设定源
  BufferedReader br=new BufferedReader(new InputStreamReader(url.openStream()));
  
  //将读取到的数据存储在集合中
  List<String> list=new ArrayList<String>();
  String line=null;
  //定义规则
//  String regex="[a-zA-Z0-9]+@[a-z0-9]+(\\.[a-zA-Z0-9]{1,3})+";
//  String regex="[a-zA-Z0-9]+@[a-z0-9]+(\\.[a-zA-Z0-9]{1,3})+";
  String regex="\\w+@\\w+(\\w+.)+";
  Pattern p=Pattern.compile(regex);
  while((line=br.readLine())!=null){
   //把读取到的数据存储在集合中
   Matcher m=p.matcher(line);
   while(m.find()){
    list.add( m.group());
   }
  }
  return list;
 }
  
 public static List<String> getMails_2() throws IOException{
  //设定源
  BufferedReader br=new BufferedReader(new FileReader("d:\\a.txt"));
  
  //将读取到的数据存储在集合中
  List<String> list=new ArrayList<String>();
  String line=null;
  //定义规则
//  String regex="[a-zA-Z0-9]+@[a-z0-9]+(\\.[a-zA-Z0-9]{1,3})+";
//  String regex="[a-zA-Z0-9]+@[a-z0-9]+(\\.[a-zA-Z0-9]{1,3})+";
  String regex="\\w+@\\w+(\\w+.)+";
  Pattern p=Pattern.compile(regex);
  while((line=br.readLine())!=null){
   //把读取到的数据存储在集合中
   Matcher m=p.matcher(line);
   while(m.find()){
    list.add( m.group());
   }
  }
  
/*  //对集合进行遍历,取出数据
  for(String url:list){
   System.out.println(url);
  }*/
  return list;
  
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值