Comando de gerenciamento personalizado do Django executando o Scrapy: Como incluir as opções do Scrapy?

Eu quero ser capaz de executar oEstrutura de rastreamento da Web com escassez de dentro do Django. O próprio scrapy fornece apenas uma ferramenta de linha de comandoscrapy para executar seus comandos, ou seja, a ferramenta não foi intencionalmente escrita para ser chamada a partir de um programa externo.

O usuárioMikhail Korobov veio com umboa solução, ou seja, chamar o Scrapy de um comando de gerenciamento personalizado do Django. Por conveniência, repito sua solução aqui:

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

Em vez de ligar, por exemploscrapy crawl domain.com Agora eu posso fazerpython manage.py scrapy crawl domain.com de dentro de um projeto do Django. No entanto, as opções de um comando Scrapy não são analisadas de todo. Se eu fizerpython manage.py scrapy crawl domain.com -o scraped_data.json -t json, Eu só recebo a seguinte resposta:

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

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

Então, minha pergunta é: como estender o comando de gerenciamento personalizado para adotar as opções de linha de comando do Scrapy?

Infelizmente, o Djangodocumentação desta parte não é muito extenso. Eu também li a documentação do Pythonmódulo optparse mas depois não ficou mais claro para mim. Alguém pode me ajudar a esse respeito? Muito obrigado antecipadamente!

questionAnswers(2)

yourAnswerToTheQuestion