@Override
	public final void runSpider() {
		if (logger == null)
			throw new NullPointerException("logger is null");
		if (scheduler == null)
			throw new NullPointerException("defaultScheduler is null");
		if (defaultDownloader == null)
			throw new NullPointerException("defaultDownloader is null");
		if (defaultParser == null)
			throw new NullPointerException("defaultParser is null");
		if (defaultPipeline == null)
			throw new NullPointerException("defaultPipeline is null");
		if (engine == null)
			throw new NullPointerException("engine is null");
		try {
			startRequests();
		} catch (Exception e) {
			logger.error(null, e);
		}
		engine.start();
	}