Polecenie zarządzania niestandardowego Django z uruchomieniem Scrapy: Jak włączyć opcje Scrapy?

Chcę móc uruchomićScrapy indeksowania stron internetowych z Django. Samo zadrapanie zapewnia tylko narzędzie linii poleceńscrapy aby wykonać swoje polecenia, tzn. narzędzie nie zostało celowo napisane do wywołania z zewnętrznego programu.

UżytkownikMikhail Korobov wymyśliłładne rozwiązanie, mianowicie wywołać Scrapy z polecenia zarządzania niestandardowego Django. Dla wygody powtarzam tutaj jego rozwiązanie:

<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>

Zamiast dzwonić np.scrapy crawl domain.com Teraz mogę to zrobićpython manage.py scrapy crawl domain.com z poziomu projektu Django. Jednak opcje polecenia Scrapy nie są w ogóle analizowane. Jeśli zrobiępython manage.py scrapy crawl domain.com -o scraped_data.json -t json, Otrzymuję tylko następującą odpowiedź:

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

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

Moje pytanie brzmi: jak rozszerzyć polecenie zarządzania niestandardowego, aby przyjąć opcje linii poleceń Scrapy?

Niestety, Djangodokumentacja tej części nie jest zbyt obszerny. Przeczytałem także dokumentację Pythonamoduł optparse ale potem nie było dla mnie jaśniejsze. Czy ktoś może mi w tym pomóc? Z góry dziękuję!

questionAnswers(2)

yourAnswerToTheQuestion