code: public void start(int depth) throws Exception {
  
          LOG.info(this.toString());
  
          // register conf to all plugins
          // except [fetcher, generatorFilter]
          ConfigurationUtils.setTo(this, dbManager, executor, nextFilter);
          registerOtherConfigurations();
  
  
          if (!resumable) {
              if (dbManager.isDBExists()) {
                  dbManager.clear();
              }
  
              if (seeds.isEmpty() && forcedSeeds.isEmpty()) {
                  LOG.info("error:Please add at least one seed");
                  return;
              }
          }
          dbManager.open();
  
          if (!seeds.isEmpty()) {
              inject();
          }
  
          if (!forcedSeeds.isEmpty()) {
              injectForcedSeeds();
          }
  
          status = RUNNING;
          for (int i = 0; i < depth; i++) {
              if (status == STOPED) {
                  break;
              }
              LOG.info("start depth " + (i + 1));
              long startTime = System.currentTimeMillis();
              fetcher = new Fetcher();
              //register fetcher conf
              ConfigurationUtils.setTo(this, fetcher);
  
              fetcher.setDBManager(dbManager);
              fetcher.setExecutor(executor);
              fetcher.setNextFilter(nextFilter);
              fetcher.setThreads(threads);
              int totalGenerate = fetcher.fetchAll(generatorFilter);
  
              long endTime = System.currentTimeMillis();
              long costTime = (endTime - startTime) / 1000;
  
              LOG.info("depth " + (i + 1) + " finish: \n\ttotal urls:\t" + totalGenerate + "\n\ttotal time:\t" + costTime + " seconds");
              if (totalGenerate == 0) {
                  break;
              }
  
          }
          dbManager.close();
          afterStop();
      }
docs: 开始爬取，迭代次数为depth
  
  @param depth 迭代次数
  @throws Exception 异常