一个简单的页面扫描程序Scan

 代码功能实现,输入一个简写的url地址,得到此页面上所有的超级链接。

从原理上看,把后台输入的简写url加工,转换成java.net.URL类型。使用poenStream()将资源数据转化成数据流,在网络资源和URL对象之间建立一条信道链路。从HTML角度来说,就是查该主页上包含多少个HREF标记。

package net;

import java.net.*;
import java.io.*;

class URL_PageScan 
{
   
public static void main(String args[]) 
   {
      System.out.println(
"Working..");
      
//if(args.length!=1)
      
//{
      System.out.println("输入一个URL地址后回车,如http://java.sun.com/index.html");
      
//    System.exit(0);
      
//}
      URL ul = null;
      
char c;
      StringBuffer buf 
= new StringBuffer();
      
try 
      {
         
while((c = (char)System.in.read()) != ' '
         {
            buf.append(c);
         }
         buf.insert(buf.length() 
- 1"/index.html");
         System.out.println(
"URL_3:" + buf.toString());
         ul 
= new URL("http://" + buf.toString());
         System.out.println(
"URL:" + ul);
      }
      
catch(Exception e) 
      {
         System.out.println(
"Bad URL:" + ul);
      }
      StringBuffer page 
= new StringBuffer();
      
try 
      {
         InputStream in 
= ul.openStream();
         BufferedReader reader 
= new BufferedReader(new InputStreamReader(in));
         
int data;
         
while((data = reader.read()) != -1
            page.append((
char)data);
      }
      
catch(IOException e) 
      {
         e.printStackTrace();
      }
      
//计算"HREF"出现的次数
      int refCount = 0;
      
for(int i = 4; i < page.length(); i ++ ) 
      {
         
if(page.substring(i - 4, i).equalsIgnoreCase("HREF")) 
            refCount 
++ ;
      }
      System.out.println(
"pages referenced:" + refCount);
   }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值