Miner.java 爬虫启动类

时间:2022-05-16 06:59:52

Miner.java 爬虫启动类

package com.iteye.injavawetrust.miner;

import java.util.concurrent.ThreadPoolExecutor;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; /**
* 爬虫启动类
* @author InJavaWeTrust
*
*/
public class Miner { private static final Log LOG = LogFactory.getLog(Miner.class); private MinerUrl minerUrl = null; private MinerConfig config = null; public Miner(MinerUrl minerUrl, MinerConfig config){
this.minerUrl = minerUrl;
this.config = config;
} public void start(){
//启动前 先校验配置
if(!MinerUtil.checkBeforeStart(config)){
LOG.info("配置出现问题,程序不能启动!!!");
return;
}
MinerUtil.starTime = System.currentTimeMillis();
//程序启动,将第一个起始页面放入待访问队列。
MinerQueue.addUnVisited(minerUrl);
//将URL 添加到URL队列 保证每个URL只访问一次
MinerQueue.addUrlSet(minerUrl.getUrl());
ThreadPoolExecutor executor = MinerThreadPool.getInstance();
//download
for(int i = 0; i < config.getMinerHtmlThreadNum(); i++){
MinerHtmlThread minerHtml = new MinerHtmlThread(config);
executor.execute(minerHtml);
}
//misering
for(int i = 0; i < config.getMiseringThreadNum(); i++){
MiseringThread misering = new MiseringThread(config);
executor.execute(misering);
}
//store
for(int i = 0; i < config.getMinserStoreThreadNum(); i++){
MinerStoreThread minerStoreThread = new MinerStoreThread(config);
executor.execute(minerStoreThread);
}
//monitor
MinerMonitorThread minerMonitor = new MinerMonitorThread();
executor.execute(minerMonitor);
} }

返回列表