Java

本类阅读TOP10

·使用MyEclipse开发Struts框架的Hello World!(录像1)
·hibernate配置笔记
·AOP编程入门--Java篇
·linux下Tomcat 5.0.20 与 Apache 2 安装/集成/配置
·在win2003下整合了整合Tomcat5.5+ apache_2.0.53+ mod_jk_2.0.47.dll
·构建Linux下IDE环境--Eclipse篇
·Jsp 连接 mySQL、Oracle 数据库备忘(Windows平台)
·ASP、JSP、PHP 三种技术比较
·Tomcat5.5.9的安装配置
·AWT GUI 设计笔记(二)

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
用httpunit写的spider程序:可以监测网站的错误页面!

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

这个程序出自Java Tools for Extreme Programming一书。

import com.meterware.httpunit.*;
import java.util.HashSet;
import java.util.Set;

public class CheckSite {

 private WebConversation conversation;

 private Set checkedLinks;

 private String host = "www.sohu.com";

 public static void main(String[] args) throws Exception {
  CheckSite cs = new CheckSite();
  cs.setUp();
  cs.testEntireSite();
 }

 public void setUp() {
  conversation = new WebConversation();
  checkedLinks = new HashSet();
 }

 public void testEntireSite() throws Exception {
  WebResponse response = conversation.getResponse("http://" + host);
  checkAllLinks(response);
  System.out.println("Site check finished. Link's checked: "
    + checkedLinks.size() + " : " + checkedLinks);
 }

 private void checkAllLinks(WebResponse response) throws Exception {
  if (!isHtml(response)) {
   return;
  }
  WebLink[] links = response.getLinks();
  System.out.println(response.getTitle() + " -- links found = "
    + links.length);
  for (int i = 0; i < links.length; i++) {
   boolean newLink = checkedLinks.add(links[i].getURLString());
   if (newLink) {
    System.out.println("Total links checked so far: "
      + checkedLinks.size());
    checkLink(links[i]);
   }
  }
 }

 private boolean isHtml(WebResponse response) {
  return response.getContentType().equals("text/html");
 }

 private void checkLink(WebLink link) throws Exception {
  WebRequest request = link.getRequest();
  java.net.URL url = request.getURL();
  System.out.println("checking link: " + url);
  String linkHost = url.getHost();
  if (linkHost.equals(this.host)) {
   WebResponse response = conversation.getResponse(request);
   this.checkAllLinks(response);
  }

 }
}




相关文章

相关软件