Python ¿Cómo podemos ejecutar la función araña de Scrapy basada en una condición?

Tengo una función de multiprocesamiento en Python como se describe a continuación en Scrapy que debe corregirse. ¿Podría hacer que run_spider () se verifique primero para que no se ejecute si response.css (‘div.quote’) está en blanco? En este momento todavía se está ejecutando si el resultado está en blanco (puede intentar cambiarlo con algo más como response.css (‘xxx’)) para ver a qué me refiero.

Aquí mi código:

import scrapy import scrapy.crawler as crawler from multiprocessing import Process, Queue from twisted.internet import reactor # your spider class QuotesSpider(scrapy.Spider): name = "quotes" start_urls = ['http://quotes.toscrape.com/tag/humor/'] def parse(self, response): for quote in response.css('div.quote'): print(quote.css('span.text::text').extract_first()) # the wrapper to make it run more times def run_spider(): def f(q): try: runner = crawler.CrawlerRunner() deferred = runner.crawl(QuotesSpider) deferred.addBoth(lambda _: reactor.stop()) reactor.run() q.put(None) except Exception as e: q.put(e) q = Queue() p = Process(target=f, args=(q,)) p.start() result = q.get() p.join() if result is not None: raise result print('first run:') run_spider() print('\nsecond run:') run_spider() 

¡Ayudame por favor!

¡Gracias por adelantado!