Scrapy: не в состоянии запланировать - PullRequest
0 голосов
/ 03 декабря 2018

Я хочу запускать паука каждые пару минут.Я добавил в свой проект следующий скрипт, который я хочу вызвать для этой цели.

import schedule, os
from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settings

def job():
      process = CrawlerProcess(get_project_settings())
      process.crawl('amazon_spider')
      process.start() # error: twisted.internet.error.ReactorNotRestartable 
      #process.start(stop_after_crawl=False)  #process get stuck

while True:
     schedule.run_pending()
     schedule.every().minutes.do(job)

При таком подходе процесс выдает следующую ошибку:

twisted.internet.error.ReactorNotRestartable или застрял, если я поставлю process.start (stop_after_crawl = False)

Из предыдущего опубликованного стекового потока я также пытаюсь сделать следующее:

from twisted.internet import reactor
from amazon.spiders.amazon_spider import AmazonSpider
from scrapy.crawler import CrawlerRunner

def run_crawl():

    runner = CrawlerRunner({
    'USER_AGENT': 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)',
    })
     deferred = runner.crawl(AmazonSpider)
     deferred.addCallback(reactor.callLater, 10, run_crawl)

     return deferred

     run_crawl()
     reactor.run()   

Процесс снова застрял всередина функции разбора.Я действительно не знаю, что попробовать дальше.Если у вас есть идея, пожалуйста, дайте мне знать.Заранее спасибо .... (Кстати, это не дубликат, поскольку сообщения на одну и ту же тему не решили мою проблему.

...