Я столкнулся с проблемой, которая была опубликована здесь несколько раз. То есть я пытаюсь запустить два процесса искателя в одном скрипте и получаю ошибку ReactorNotRestartable
.
Ответы, которые я видел, предоставляют способы запуска пауков одновременно или последовательно, но без каких-либо параметров, передаваемых в середина. Мне нужно запустить одного паука, выполнить некоторую работу с выводом, а затем запустить второго паука с набором параметров в зависимости от вывода первого паука. Вот мой псевдокод:
def do_shallow_scrape():
results = []
def crawler_results(signal, sender, item, response, spider):
results.append(item)
dispatcher.connect(crawler_results, signal=signals.item_passed)
process = CrawlerProcess(get_project_settings())
process.crawl('list')
process.start()
return results
def do_details_scrape(ids):
results = []
def crawler_results(signal, sender, item, response, spider):
results.append(item)
dispatcher.connect(crawler_results, signal=signals.item_passed)
process = CrawlerProcess(get_project_settings())
process.crawl('details', ids=ids)
process.start()
return results
def coordinate_scrape():
shallow_results = do_shallow_scrape()
ids = some_script(shallow_results)
details = do_details_scrape(ids)
Заранее спасибо за помощь!