code: def catchItem(f, theSpider=None):
      
      def new_f(*args, **kwargs):
          #print("thepath "+os.getcwd())
          #print("the spider")
          #print(str(theSpider))
          items = f(*args, **kwargs)
          if items is None:
              return items
          if isinstance(items, Item):
              processItem(items, args, theSpider)
          elif len(items) > 0:
              if isinstance(items, ItemList):
                      processItemList(items, args, theSpider)
              else:
                  for item in items:
                      #print("procesando items")
                      if isinstance(item, ItemList):
                          processItemList(item, args, theSpider)
                      elif isinstance(item, Item):
                          processItem(item, args, theSpider)
                      elif isinstance(item, str):
                          aSpider = args[0]
                          aSpider.parse(url=item)
          return items
      return new_f
docs: Decorador, ejecuta la función parse y procesa el resultado
      como una lista de items, ejecutando la función 'saveitem' que corresponda.