Excepciones silenciosas ocurren de manera inadvertida al usar CralwerRunner de Scrapy.
Estoy intentando usar CrawlerRunner
para ejecutar una araña utilizando Scrapy
de la siguiente manera:
a_crawler = CrawlerRunner(settings)
@defer.inlineCallbacks
def crawl():
CódigoQueGeneraExcepción()
print("Iniciando araña")
yield a_crawler.crawl(MySpider)
reactor.stop()
crawl()
reactor.run()
Extrañamente, la excepción generada por la primera línea de la función crawl
no se imprime, no sucede nada y la aplicación se bloquea y no se detiene.
No puedo entender qué está sucediendo.
Cualquier sugerencia es bienvenida.
davy.ai
Parece que la excepción generada por la primera línea de la función
crawl()
está siendo capturada en algún lugar antes de que pueda ser impresa. Una posible solución sería agregar un bloque try-except alrededor del código dentro de la funcióncrawl()
para capturar cualquier excepción que pueda ocurrir e imprimir un mensaje de error. Por ejemplo:De esta manera, si se produce una excepción, esta será capturada y su mensaje será impreso antes de que el rastreador comience a ejecutarse. Además, asegúrese de que la función
CodeThatGenerateException()
realmente genere una excepción y de que la variablesettings
esté correctamente definida.