Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Scrapy 1.0 - получение возвращаемого значения после запуска из скрипта python

Автор вопроса: Random 102Ответов: 1

Я использую приведенный ниже код для запуска своего сканера из скрипта 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

pythonscrapyscrapy-spider

Ответы

Ответ 1 · GHajba

Что ж, решением было бы реализовать пользовательский конвейер элементов для сохранения ваших результатов в файле и чтения результатов позже.

В качестве альтернативы вы также можете сделать это, настроив экспорт в Scrapy. Например, экспортируйте элементы в файл с именем results.json:

settings.overrides['FEED_FORMAT'] = 'json'
settings.overrides['FEED_URI'] = 'results.json'

Чтобы избежать временного файла, вы должны использовать собственный класс конвейера и обрабатывать свои результаты по сигналу spider_closed.

Вы можете обратиться к этому ответу для получения более подробной информации: https://stackoverflow.com/a/23574703/3941341

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы