Пользовательская команда управления Django под управлением Scrapy: как включить опции Scrapy?

Я хочу быть в состоянии запуститьScrapy Web Framework изнутри Джанго. Сама Scrapy предоставляет только инструмент командной строкиscrapy для выполнения своих команд, то есть инструмент не был специально написан для вызова из внешней программы.

ПользовательМихаил Коробов придумалихорошее решениеа именно для вызова Scrapy из пользовательской команды управления Django. Для удобства повторю его решение здесь:

<code># -*- coding: utf-8 -*-
# myapp/management/commands/scrapy.py 

from __future__ import absolute_import
from django.core.management.base import BaseCommand

class Command(BaseCommand):

    def run_from_argv(self, argv):
        self._argv = argv
        return super(Command, self).run_from_argv(argv)

    def handle(self, *args, **options):
        from scrapy.cmdline import execute
        execute(self._argv[1:])
</code>

Вместо того, чтобы звонить, например,scrapy crawl domain.com Теперь я могу сделатьpython manage.py scrapy crawl domain.com из проекта Django. Однако параметры команды Scrapy вообще не анализируются. Если я сделаюpython manage.py scrapy crawl domain.com -o scraped_data.json -t jsonЯ только получаю следующий ответ:

<code>Usage: manage.py scrapy [options] 

manage.py: error: no such option: -o
</code>

So my question is, how to extend the custom management command to adopt Scrapy's command line options?

К сожалению, Djangoдокументация этой части не очень обширный. Я также прочитал документацию Pythonмодуль optparse но потом мне стало не понятнее. Может ли кто-нибудь помочь мне в этом отношении? Заранее большое спасибо!

Ответы на вопрос(2)

Ваш ответ на вопрос