网络爬虫实现

class WebReptils {
   public static void main(String[] args) {
       URL url = null;
       URLConnection urlconn = null;
       BufferedReader br = null;
       PrintWriter pw = null;
       String regex = "https://[\\w+\\.?/?]+\\.[A-Za-z]+";                       //url匹配规则
       Pattern p = Pattern.compile(regex);
       try {
           url = new URL("https://www.baidu.com/");
           urlconn = url.openConnection();
           pw = new PrintWriter(new FileWriter("D:/SiteURL.txt"), true);//将爬取到的链接放到D盘的SiteURL文件中
           br = new BufferedReader(new InputStreamReader(urlconn.getInputStream()));
           String buf = null;
           while ((buf = br.readLine()) != null) {
               Matcher buf_m = p.matcher(buf);
               while (buf_m.find()) {
                   pw.println(buf_m.group());
               }
           }
           System.out.println("爬取成功^_^");
       } catch (MalformedURLException e) {
           e.printStackTrace();
       } catch (IOException e) {
           e.printStackTrace();
       } finally {
           try {
               br.close();
           } catch (IOException e) {
               e.printStackTrace();
           }
           pw.close();
       }
   }
}

默认是通过io流输出到D:/SiteURL.txt 这个路径 ,里面还涉及了匹配网址的正则表达式。还有关于Pattern这个为正则表达式设计的api的使用。在JDK API里有详细的关于如何写正则表达式的说明。然后平时io流写得少,用buffer接了一下原生io。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GDjipX71-1635925860283)(http://m.qpic.cn/psc?/V53gVGbx1XHcBh2rrPsw36Tj5d3bHGYO/ruAMsa53pVQWN7FLK88i5ksVyBmqdAyveAQH2lCkJM0BS6haNRnebtz9e66g*Nv.ZjjuA2BNVxaWmJWjceF0dOHTIjfF5sq0OEplK7zpopQ!/b&bo=KAURAigFEQIDCSw!&rf=viewer_4)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值