Паук Scrapy не может переопределить custom_settings в соответствии с аргументами - PullRequest
0 голосов
/ 17 июня 2019

Я пытаюсь переопределить настройки скрапа по умолчанию из arg, но это не работает.

В моих settings.py у меня есть:

EXTENSIONS = {
    'scrapy.extensions.closespider.CloseSpider': 80,
}
CLOSESPIDER_PAGECOUNT = 1

Тогда я запускаю паука вот так: scrapy crawl links_extractor3 -a flow = many

и ничего не происходит.

class LinksExtractor3Spider(CrawlSpider):
    name = 'links_extractor3'
    allowed_domains = ['books.toscrape.com']
    start_urls = ['http://books.toscrape.com/']
    custom_settings = {}

    def __init__(self, *args, **kwargs):
        self.flow = kwargs.get('flow')
        if self.flow == 'many':
            self.custom_settings['CLOSESPIDER_PAGECOUNT'] = 0
        super(LinksExtractor3Spider, self).__init__(*args, **kwargs)

    rules = (
        Rule(LinkExtractor(), callback='parse_item', follow=False),
    )

    def parse_item(self, response):
            item = {}
            item['title'] = response.xpath('//head/title/text()').extract()
            item['url'] = response.url
            yield item

Если я жестко кодирую custom_setting custom_settings {'CLOSESPIDER_PAGECOUNT': 0}

или отправьте его через настройки agr: scrapy crawl links_extractor3 -s CLOSESPIDER_PAGECOUNT = 0 все работает отлично.

Можно ли переопределить настройки с помощью аргументов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...