zoukankan      html  css  js  c++  java
  • Java爬虫

    1.昨天复习了Java基础(I/O流)和正则表达式

       今天不讲Java中的 I/O

     主要用一个实例来爬取网站中的邮箱

    代码如下:

     1 package com.miao.baba.pacong;
     2 
     3 import java.io.BufferedReader;
     4 import java.io.IOException;
     5 import java.io.InputStream;
     6 import java.io.InputStreamReader;
     7 import java.net.URL;
     8 import java.net.URLConnection;
     9 import java.util.regex.Matcher;
    10 import java.util.regex.Pattern;
    11 
    12 public class Reptile {
    13 
    14     public static void main(String[] args) throws IOException {
    15         String email = "[a-zA-Z0-9_]+@[a-zA-Z0-9]+(\.[a-zA-Z0-9]+)+";
    16         Pattern p = Pattern.compile(email);
    17         URL url = new URL("http://acm.hrbust.edu.cn");
    18 
    19         URLConnection conn = url.openConnection();
    20 
    21         InputStream in = conn.getInputStream();
    22         InputStreamReader isr = new InputStreamReader(in);
    23         BufferedReader br = new BufferedReader(isr);
    24 
    25         String line = null;
    26         while ((line = br.readLine()) != null) {
    27             Matcher m = p.matcher(line);
    28 
    29             while (m.find()) {
    30                 System.out.println(m.group());
    31             }
    32         }
    33         br.close();
    34     }
    35 }
    View Code

    2.为了让大家好好认识正则表达式下面对代码中的正则表达式进行分析

    [a-zA-Z0-9_]+@[a-zA-Z0-9]+(\.[a-zA-Z0-9]+)+

    分析:

    [a-zA-Z0-9_]+   : 表示匹配a~z和A~Z和0~9和_ 中的多个

    @   : 表示匹配 @

    [a-zA-Z0-9]+ : 表示匹配a~z和A~Z和0~9中的多个

    (\.[a-zA-Z0-9]+)+  : 表示匹配 . 和a~z和A~Z和0~9中的多个

    3.后附一张正则表达式图(经过测试验证,如有错误欢迎指正)

  • 相关阅读:
    cf B. Vasily the Bear and Fly
    hdu 3339 In Action
    hdu 六度分离
    cf A. Vasily the Bear and Triangle
    cf C. Secrets
    2.19学习笔记|2.20学习笔记
    VAE代码学习
    2.9日学习记录
    deconvolution反卷积(待学习)
    gamma分布学习
  • 原文地址:https://www.cnblogs.com/sxmcACM/p/3753893.html
Copyright © 2011-2022 走看看