代码拉取完成,页面将自动刷新
Spider的run()方法。
try {
processRequest(request);
onSuccess(request);
} catch (Exception e) {
onError(request);
logger.error("process request " + request + " error", e);
} finally {
pageCount.incrementAndGet();
signalNewUrl();
}
其中的processRequest方法中通过Page的downloadSuccess来判断下载是否成功。
private void processRequest(Request request) {
Page page = downloader.download(request, this);
if (page.isDownloadSuccess()){
onDownloadSuccess(request, page);
} else {
onDownloaderFail(request);
}
}
这一属性,只在HttpClientDownloader中设置了。但PhantomJSDownloader并没有修改(始终为true)。
Downloader下载失败后,pageCount也会增加,显示Spider xxx closed! N pages downloaded.其中,N=cycleRetryTimes。
同时,RedisScheduler中已有标记,导致再次启动同一任务后,会被去重(失败的任务,应当消除标记)。