大家好,我刚学习JAVA很短时间,在网上看到一个程序是写爬行器的,下面是它的接口声明和程序:
我在根目录下加入了包:*\com\heaton\bot
--------------------------------------------
package com.heaton.bot;
/**
*
*Copyright 2009 by Lingbo
*
*@author Lingbo
*
*/
public interface ISpiderReportable
{
public boolean foundInternalLink(String url);
public boolean foundExternalLing(String url);
public boolean foundOtherLink(String url);
public void processPage(HTTP page);
public void completePage(HTTP page,boolean error);
public boolean getRemoveQuery();
public void SpiderCompete();
}
---------------------------------------------package news;import com.heaton.bot.HTTP;
import com.heaton.bot.HTTPSocket;
import com.heaton.bot.ISpiderReportable;
import com.heaton.bot.IWorkloadStorable;
import com.heaton.bot.Spider;
import com.heaton.bot.SpiderInternalWorkload;
/**
* 构造一个Bot程序
*/
public class Searcher
implements ISpiderReportable {
public static void main(String[] args) throws Exception {
IWorkloadStorable wl = new SpiderInternalWorkload();
Searcher _searcher = new Searcher();
Spider _spider
= new Spider(_searcher, "http://127.0.0.1/news.htm",
new HTTPSocket(), 100, wl);
_spider.setMaxBody(100);
_spider.start();
}
// 发现内部连接时调用,url表示程序发现的URL,若返回true则加入作业中,否则不加入。
public boolean foundInternalLink(String url) {
return false;
}
// 发现外部连接时调用,url表示程序所发现的URL,若返回true则把加入作业中,否则不加入。
public boolean foundExternalLink(String url) {
return false;
}
// 当发现其他连接时调用这个方法。其他连接指的是非HTML网页,可能是E-mail或者FTP
public boolean foundOtherLink(String url) {
return false;
}
// 用于处理网页,这是Spider程序要完成的实际工作。
public void processPage(HTTP http) {
System.out.println("扫描网页:" + http.getURL());
new HTMLParse(http).start();
}
// 用来请求一个被处理的网页。
public void completePage(HTTP http, boolean error) {
}
// 由Spider程序调用以确定查询字符串是否应删除。如果队列中的字符串应当删除,方法返回真。
public boolean getRemoveQuery() {
return true;
}
// 当Spider程序没有剩余的工作时调用这个方法。
public void spiderComplete() {
}
}
----------------------------
我在编译的时候,DOS提示错误:
Searcher.java:38:找不到符号
符号: 类HTMLParse
位置: 类news.searcher
new HTMLParse(http).start();
--------------------------------
希望大家多多指点,谢谢。
我在根目录下加入了包:*\com\heaton\bot
--------------------------------------------
package com.heaton.bot;
/**
*
*Copyright 2009 by Lingbo
*
*@author Lingbo
*
*/
public interface ISpiderReportable
{
public boolean foundInternalLink(String url);
public boolean foundExternalLing(String url);
public boolean foundOtherLink(String url);
public void processPage(HTTP page);
public void completePage(HTTP page,boolean error);
public boolean getRemoveQuery();
public void SpiderCompete();
}
---------------------------------------------package news;import com.heaton.bot.HTTP;
import com.heaton.bot.HTTPSocket;
import com.heaton.bot.ISpiderReportable;
import com.heaton.bot.IWorkloadStorable;
import com.heaton.bot.Spider;
import com.heaton.bot.SpiderInternalWorkload;
/**
* 构造一个Bot程序
*/
public class Searcher
implements ISpiderReportable {
public static void main(String[] args) throws Exception {
IWorkloadStorable wl = new SpiderInternalWorkload();
Searcher _searcher = new Searcher();
Spider _spider
= new Spider(_searcher, "http://127.0.0.1/news.htm",
new HTTPSocket(), 100, wl);
_spider.setMaxBody(100);
_spider.start();
}
// 发现内部连接时调用,url表示程序发现的URL,若返回true则加入作业中,否则不加入。
public boolean foundInternalLink(String url) {
return false;
}
// 发现外部连接时调用,url表示程序所发现的URL,若返回true则把加入作业中,否则不加入。
public boolean foundExternalLink(String url) {
return false;
}
// 当发现其他连接时调用这个方法。其他连接指的是非HTML网页,可能是E-mail或者FTP
public boolean foundOtherLink(String url) {
return false;
}
// 用于处理网页,这是Spider程序要完成的实际工作。
public void processPage(HTTP http) {
System.out.println("扫描网页:" + http.getURL());
new HTMLParse(http).start();
}
// 用来请求一个被处理的网页。
public void completePage(HTTP http, boolean error) {
}
// 由Spider程序调用以确定查询字符串是否应删除。如果队列中的字符串应当删除,方法返回真。
public boolean getRemoveQuery() {
return true;
}
// 当Spider程序没有剩余的工作时调用这个方法。
public void spiderComplete() {
}
}
----------------------------
我在编译的时候,DOS提示错误:
Searcher.java:38:找不到符号
符号: 类HTMLParse
位置: 类news.searcher
new HTMLParse(http).start();
--------------------------------
希望大家多多指点,谢谢。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货