一个简单的页面扫描程序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);
   }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值