java 爬虫详解及简单实例

 更新时间:2017年05月24日 08:29:46   作者:饭饭_fan  
这篇文章主要介绍了java 爬虫详解及简单实例的相关资料,需要的朋友可以参考下

Java爬虫

一、代码

爬虫的实质就是打开网页源代码进行匹配查找,然后获取查找到的结果。

打开网页:

URL url = new URL(http://www.cnblogs.com/Renyi-Fan/p/6896901.html);

读取网页内容:

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

正则表达式进行匹配:

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

储存结果:

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

/*
* 获取
* 将正则规则进行对象的封装。
* Pattern p = Pattern.compile("a*b");
* //通过正则对象的matcher方法字符串相关联。获取要对字符串操作的匹配器对象Matcher .
* Matcher m = p.matcher("aaaaab");
* //通过Matcher匹配器对象的方法对字符串进行操作。
* boolean b = m.matches();
*/

import java.io.BufferedReader;
import java.io.FileNotFoundException;
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 Spider {

  public static void main(String[] args) throws IOException {
//    List<String> list = getMails();
//    for(String mail : list){
//      System.out.println(mail);
//    }
  
    List<String> list = getMailsByWeb();
    for(String mail : list){
      System.out.println(mail);
    }
  }

  public static List<String> getMailsByWeb() throws IOException{
    //1,读取源文件。
    //URL url = new URL("http://192.168.1.100:8080/myweb/mail.html");
    //URL url = new URL("http://localhost:8080/SecondWeb/index.jsp");
    URL url = new URL("http://www.cnblogs.com/Renyi-Fan/p/6896901.html");

    BufferedReader bufr = 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=bufr.readLine())!=null){

      Matcher m = p.matcher(line);
      while(m.find()){
        //3,将符合规则的数据存储到集合中。
        list.add(m.group());
      }

    }
    return list;
  }

  public static List<String> getMails() throws IOException{
    //1,读取源文件。
    BufferedReader bufr = new BufferedReader(new FileReader("c:\\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;
  }
}

二、运行结果

abc1@sina.com.cn
1@1.1

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • 关于HashSet与HashMap的区别及说明

    关于HashSet与HashMap的区别及说明

    这篇文章主要介绍了关于HashSet与HashMap的区别及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • Activiti7通过代码动态生成工作流实现详解

    Activiti7通过代码动态生成工作流实现详解

    这篇文章主要为大家介绍了Activiti7通过代码动态生成工作流实现详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • 修改maven项目端口号的方法

    修改maven项目端口号的方法

    今天小编就为大家分享一篇修改maven项目端口号的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • java根据ip地址获取详细地域信息的方法

    java根据ip地址获取详细地域信息的方法

    这篇文章主要介绍了java根据ip地址获取详细地域信息的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • 详解Maven JAR包冲突问题排查及解决方案

    详解Maven JAR包冲突问题排查及解决方案

    这篇文章主要介绍了Maven JAR包冲突问题排查及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • Spring Boot自动配置的原理及@Conditional条件注解

    Spring Boot自动配置的原理及@Conditional条件注解

    这篇文章主要介绍了Spring Boot自动配置的原理及@Conditional条件注解,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的朋友可以参考一下
    2022-07-07
  • Spring中的@ControllerAdvice三种用法详解

    Spring中的@ControllerAdvice三种用法详解

    这篇文章主要介绍了Spring中的@ControllerAdvice三种用法详解,加了@ControllerAdvice的类为那些声明了(@ExceptionHandler、@InitBinder或@ModelAttribute注解修饰的)方法的类而提供的<BR>专业化的@Component,以供多个Controller类所共享,需要的朋友可以参考下
    2024-01-01
  • Java线程安全中的有序性浅析

    Java线程安全中的有序性浅析

    这篇文章主要介绍了Java线程安全中的有序性,在开发中,我们通常按照从上到下的顺序编写程序指令,并且希望cpu和编译器按照我们预先编写的顺序去执。但往往cpu和编译器为了提高性能、优化指令的执行顺序,会将我们编写好的程序指令进行重排序
    2023-02-02
  • MyBatis如何使用selectKey返回主键的值

    MyBatis如何使用selectKey返回主键的值

    这篇文章主要介绍了MyBatis如何使用selectKey返回主键的值,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • SpringBoot中短时间连续请求时出现Cookie获取异常问题的解决方案

    SpringBoot中短时间连续请求时出现Cookie获取异常问题的解决方案

    在 Spring Boot Web 应用中,每个请求都会携带 HttpServletRequest,其中包含 Cookie 等关键信息,如果某个请求对象的 cookieParsed 标记在异步线程中被错误修改,可能会导致 短时间内的后续请求无法正确解析 Cookie,本文给大家介绍了详细解决方法,需要的朋友可以参考下
    2025-04-04

最新评论