Java实现网络爬虫 low 版

壁画不多说

网络爬虫就是一种应用程序,可以在查找到指定的信息。

知识需求:

  1. 正则表达式
  2. IO流操作
  3. URL的应用
import java.io.*;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class NetSpideDemo {

    public static void main(String[] args) throws Exception {
//        网页爬虫:就是一个应用程序,获取网页中的指定信息(符合指定的信息)
//从本地文件搜索信息
        File file=new File("E:\\IDea项目\\正则表达式\\src\\Text.txt");
        String regex="\\w+@\\w+(\\.\\w+)+";
        List<String> list2=GetHostINFo(file,regex);
        for (String s:list2)
        {
            System.out.println(s);
        }




        /*从指定网址找到想要的信息*/
        String url_str="https://www.bilibili.com/video/av36206436?p=28";
        String regex2="\\w+@\\w+(\\.\\w+)+";
        List<String> list3=GetNetINFo(url_str,regex2);
        for (String s:list3)
        {
            System.out.println(s);
        }

    }

    private static List<String> GetNetINFo(String url_str, String regex2) throws Exception {
        List<String> list=new ArrayList<String>();

        Pattern pattern=Pattern.compile(regex2);//将正则表达式封装成对象

        URL url=new URL(url_str);
        URLConnection conn=url.openConnection();

        InputStream in=conn.getInputStream();
        BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(in));
        String line=null;
        while (((line=bufferedReader.readLine()))!=null)
        {
            Matcher matcher=pattern.matcher(line);
            while (matcher.find()) {
                list.add(matcher.group());
            }
        }
        return list;
    }



    /*
* 从本地文件中找到指定的信息
* 比如:邮箱。
* */
    private static List<String> GetHostINFo(File file, String regex) throws IOException {
//        创造集合
        List<String> list=new ArrayList<String>();


//        零时储存
        Pattern p=Pattern.compile(regex);


//       读取文件
        FileReader fileReader=new FileReader(file);
        BufferedReader bufferedReader=new BufferedReader(fileReader);

        String line=null;
        while((line=bufferedReader.readLine())!=null)
        {
            Matcher m=p.matcher(line);
            while (m.find())
            {
//                System.out.println(m.group());
                list.add(m.group());
            }
        }
        return list;
    }
}


问题来了:
我本地文件可以读取到指定信息——邮箱
但是
我用URL从网上就读不出来,没有报异常
真是一件神奇的事情 艹。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值