九、学习爬虫框架WebMagic(五)---为webmagic添加监控

(一)目的
  设置页面下载成功、失败的监听器,方便失败的时候做一些善后处理,比如把失败的url再加入到爬取队列里面,这样就不会遗漏一些页面的爬取。
  通过设置Request.CYCLE_TRIED_TIMES设置失败重试次数,可以强制把url加到待爬队列里面,避免去重机制把url看成已爬过的。

(二)代码

private static void addSpiderListeners(Spider spider) {
        ArrayList<SpiderListener> spiderListeners = new ArrayList<>();
        spiderListeners.add(new SpiderListener() {
            @Override
            public void onSuccess(Request request) {

            }

            @Override
            public void onError(Request request) {
                Integer cycleTriedTimes = (Integer) request.getExtra(Request.CYCLE_TRIED_TIMES);
                request.putExtra(Request.CYCLE_TRIED_TIMES, cycleTriedTimes == null ? 1 : cycleTriedTimes + 1);
                spider.addRequest(request);
            }
        });
        spider.setSpiderListeners(spiderListeners);
    }

猜你喜欢

转载自blog.csdn.net/panchang199266/article/details/85642162
今日推荐