Internet bağlantım nedeniyle kapalı nedenlerden dolayı (gece interneti 5 dakikaya iner) Scrapy örümcemin yeniden başlatılmasını sağlamaya çalışıyorum. İnternet bittiğinde, 5 denemeden sonra örümcek kapanır.Scrapy Spider: Bitirdiğinde örümceği yeniden başlat
kapatıldığında ben örümcek yeniden çalışıyorum benim örümcek tanımı içinde bu işlevi kullanmaya çalışıyorum: Bir örümcek örneğini yeniden gibi bir çok şey denedik ama Reaktör zaten hata var
def handle_spider_closed(spider, reason): relaunch = False for key in spider.crawler.stats._stats.keys(): if 'DNSLookupError' in key: relaunch = True break if relaunch: spider = mySpider() settings = get_project_settings() crawlerProcess = CrawlerProcess(settings) crawlerProcess.configure() crawlerProcess.crawl(spider) spider.crawler.queue.append_spider(another_spider)
veya bunun gibi bir şey çalışıyor.
Örümceği bir komut dosyasından çalıştırmayı düşündüm ve örümcek bittiğinde tekrar çağırır, ancak ne işe yaramadı, çünkü reaktör hala kullanımda.
- Niyetim
Herkes bunun için iyi ve kolay bir yolu biliyor mu (bu internet bağlantısı kaybetti çünkü örümcek kapatır) bunu kapandıktan sonra örümcek sıfırlamak için mi?
scrapy işlerini kullanarak olurdu araştırmak için bir senaryo (http://doc.scrapy.org/en/latest/topics/jobs.html) başa
errback=self.handle_error
Örümcekhandle_error
fonksiyonu özel geçmesi yapar örneğin, scrapy işlemi aktifse, her 10 dakikada bir kontrol etmek için farklı örümcek örnekleri ve kabuk betimleme arasındaki süreklilik ile. eğer değilse yeniden – abernaKaranlıkta sadece bir atış: bir örümceği yeniden canlandırdıktan sonra “spider.crawler.crawl (örümcek)” yi kullanırsanız? Teşekkürler. – alecxe
Bu dokümanları okudum ama – AlvaroAV