Я пытаюсь переопределить настройки скрапа по умолчанию из 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
все работает отлично.
Можно ли переопределить настройки с помощью аргументов?