Я использую приведенный ниже код для запуска своего сканера из скрипта Python:
import scrapy
from scrapy.crawler import CrawlerProcess
process = CrawlerProcess()
process.crawl(MySpider)
process.start() # the script will block here until the crawling is finished
где мой MySpider возвращает объект.
Как я могу получить возвращаемое значение из этого? Пожалуйста, имейте в виду, что это Scrapy 1.0. Все примеры, которые я нашел, относятся к более старым версиям Scrapy.
Приведенный выше код взят из: http://doc.scrapy.org/en/latest/topics/practices.html#run-scrapy-from-a-script
Ответ 1 · GHajba
Что ж, решением было бы реализовать пользовательский конвейер элементов для сохранения ваших результатов в файле и чтения результатов позже.
В качестве альтернативы вы также можете сделать это, настроив экспорт в Scrapy. Например, экспортируйте элементы в файл с именем results.json:
settings.overrides['FEED_FORMAT'] = 'json'
settings.overrides['FEED_URI'] = 'results.json'
Чтобы избежать временного файла, вы должны использовать собственный класс конвейера и обрабатывать свои результаты по сигналу spider_closed.
Вы можете обратиться к этому ответу для получения более подробной информации: https://stackoverflow.com/a/23574703/3941341