用Java编程实现“网络蜘蛛” - 编程入门网
r.begin();
Runnable doLater = new Runnable()
{
public void run()
{
begin.setText("Begin");
}
};
SwingUtilities.invokeLater(doLater);
backgroundThread=null;
} catch ( MalformedURLException e ) {
UpdateErrors err = new UpdateErrors();
err.msg = "错误地址。";
SwingUtilities.invokeLater(err);
}
}
/**
*当找到某一URL时由蜘蛛调用,在此验证链接。
*
*参数base是找到链接时的页面
*参数url是链接地址
*/
public boolean spiderFoundURL(URL base,URL url)
{
UpdateCurrentStats cs = new UpdateCurrentStats();
cs.msg = url.toString();
SwingUtilities.invokeLater(cs);
if ( !checkLink(url) ) {
UpdateErrors err = new UpdateErrors();
err.msg = url+"(on page " + base + ")\n";
SwingUtilities.invokeLater(err);
badLinksCount++;
return false;
}
goodLinksCount++;
if ( !url.getHost().equalsIgnoreCase(base.getHost()) )
return false;
else
return true;
}
/**
*当发现URL错误时调用
*
*参数url是导致错误的URL
*/
public void spiderURLError(URL url)
{
}
/**
*由内部调用检查链接是否有效
*
*参数url是被检查的链接
*返回True表示链接正常有效
*/
protected boolean checkLink(URL url)
{
try {
URLConnection connection = url.openConnection();
connection.connect();
return true;
} catch ( IOException e ) {
return false;
}
}
/**
*当蜘蛛找到电子邮件地址时调用
*
*参数email为找到的电子邮件地址
*/
public void spiderFoundEMail(String email)
{
}
/**
*以线程安全方式更新错误信息的内部类
*/
class UpdateErrors implements Runnable {
public String msg;
public void run()
{
errors.append(msg);
}
}
/**
*以线程安全方式更新当前状态信息
*/
class UpdateCurrentStats implements Runnable {
public String msg;
public void run()
{
current.setText("当前进度:" + msg );
goodLinksLabel.setText("正常链接:" + goodLinksCount);
badLinksLabel.setText("死链接:" + badLinksCount);
}
}
}
用Java编程实现“网络蜘蛛”(4)时间:2010-04-27 csdn villa123例2:报告蜘蛛事件(ISpiderReportable.java)
例3:可复用的蜘蛛类(Spider.java)
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |