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.后附一张正则表达式图(经过测试验证,如有错误欢迎指正)

  • 相关阅读:
    php实现qq授权登录
    lnmp环境下上传文件过大出现 <服务器IO错误> 问题解决方案
    matpb画图_折线图.ipynb
    垂直条形图——plot.bar
    将博客搬至CSDN
    pandas的函数应用二——排序
    pandas的函数应用一
    pandas的数据对齐
    将一个二维数组的行和列分别进行逆向
    numpy——深拷贝和浅拷贝和不拷贝
  • 原文地址:https://www.cnblogs.com/sxmcACM/p/3753893.html
Copyright © 2011-2022 走看看