九、學習爬蟲框架WebMagic(五)---為webmagic新增監控
阿新 • • 發佈:2019-01-03
(一)目的
設定頁面下載成功、失敗的監聽器,方便失敗的時候做一些善後處理,比如把失敗的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);
}