code: def getScrapers(comics, basepath=None, adult=True, multiple_allowed=False, listing=False):
      
      if '@' in comics:
          # only scrapers whose directory already exists
          if len(comics) > 1:
              out.warn(u"using '@' as comic name ignores all other specified comics.")
          for scraperclass in scraper.get_scraperclasses():
              dirname = getDirname(scraperclass.getName())
              if os.path.isdir(os.path.join(basepath, dirname)):
                  if shouldRunScraper(scraperclass, adult, listing):
                      yield scraperclass()
      elif '@@' in comics:
          # all scrapers
          for scraperclass in scraper.get_scraperclasses():
              if shouldRunScraper(scraperclass, adult, listing):
                  yield scraperclass()
      else:
          # get only selected comic scrapers
          # store them in a set to eliminate duplicates
          scrapers = set()
          for comic in comics:
              # Helpful when using shell completion to pick comics to get
              comic = comic.rstrip(os.path.sep)
              if basepath and comic.startswith(basepath):
                  # make the following command work:
                  # find Comics -type d | xargs -n1 -P10 dosage -b Comics
                  comic = comic[len(basepath):].lstrip(os.sep)
              if ':' in comic:
                  name, index = comic.split(':', 1)
                  indexes = index.split(',')
              else:
                  name = comic
                  indexes = None
              scraperclasses = scraper.find_scraperclasses(name, multiple_allowed=multiple_allowed)
              for scraperclass in scraperclasses:
                  if shouldRunScraper(scraperclass, adult, listing):
                      scraperobj = scraperclass(indexes=indexes)
                      if scraperobj not in scrapers:
                          scrapers.add(scraperobj)
                          yield scraperobj
docs: Get scraper objects for the given comics.