Он не должен запускать весь паук, хотя он компилирует и запускает некоторые вещи, так как именно так он вытягивает имена пауков (я предполагаю, что есть другие причины, в противном случае это кажется странным способом настроить вещи). Если вы опубликуете своего паука, мы увидим, что может работать, а не нет.
У меня возникла та же проблема, поскольку мои пауки модифицировали CSV-файлы, в том числе переименовывали / удаляли их, что приводило к ошибкам, когда я только хотелзапустить конкретного паука. Мое решение состояло в том, чтобы заставить пауков выполнять определенные задачи только тогда, когда они действительно запущены или закрыты. Документация здесь: https://docs.scrapy.org/en/latest/topics/signals.html хотя я обнаружил, что этого не хватает. Вот код, который я использовал. Раздел from_crawler может быть оставлен в стороне от изменения имени паука. Поместите все, что вы хотите в закрытой части spider_
@classmethod
def from_crawler(cls, crawler, *args, **kwargs):
spider = super(SixPMSpider, cls).from_crawler(crawler, *args, **kwargs)
crawler.signals.connect(spider.spider_closed, signal=signals.spider_closed)
return spider
def spider_closed(self, spider):
os.remove(self.name+'_price_list.csv')
os.rename(self.name+'_price_list2.csv', self.name+'_price_list.csv')