Hello, i wrote a few spiders which are working nice so far.
Now, i want to script them. I want them to start nightly and depending on the sucess (a python function will look on the stats, the database and if there where any exceptions to define "sucess") of the previous spider I want to start the next one. So i want to to do something like: spider1.start() if was_success(spider1): spider2.start() spider3.start() send_report_by_mail(spider1, spider2, spider3) And after all spiders are done, I want to send myself an email notifiction about this complete run. I looked in the different examples on how to start a spider from an script. I am doing this in a Wrapper class of my own: self.crawler = Crawler(self.settings) spider = self.spiderclass(**self.options) self.crawler.signals.connect(self.crawl_stoped, signal=signals.spider_closed) self.crawler.signals.connect(self.engine_closed, signal=signals.engine_stopped) self.crawler.signals.connect(self.crawl_error, signal=signals.spider_error) self.crawler.configure() self.crawler.crawl(spider) self.crawler.start() if not reactor.running: reactor.run() # the script will block here until the spider_closed signal was sent Now my problem, for which i can not find a solution (i tried to look in the scrapy source, but i can not figure it out, I have only basic twisted knowledge): In some cases, my spiders will raise an Exception in "spider.closed()". I don't really now why, but it looks like, that in these cases neither of the three signals (spider_closed, engine_closed or spider_error) is called, leaving me with no way, to handle this error and with a "hanging" reactor and a never ending script. How can i solve this? Thanks, Daniel -- You received this message because you are subscribed to the Google Groups "scrapy-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to scrapy-users+unsubscr...@googlegroups.com. To post to this group, send email to scrapy-users@googlegroups.com. Visit this group at http://groups.google.com/group/scrapy-users. For more options, visit https://groups.google.com/d/optout.