A
Size: a a a
A
VB
class NikeSpider(CrawlSpider):
name = 'nike'
allowed_domains = ['nike.com']
def __init__(self, locales=None, *args, **kwargs):
super(NikeSpider, self).__init__(*args, **kwargs)
LOCALES = locales.split(',')
self.rules = [
Rule(LinkExtractor(allow=fr'www.nike.com/{locale}/*'), callback='parse', follow=True)
for locale in LOCALES
]
self.start_urls = [f'https://www.nike.com/{locale}/' for locale in LOCALES]
При этом спайдер получает респонс 200 от https://www.nike.com/gb/, но сразу перестает парсить с INFO: Closing spider (finished)
Если пишу тот же самый код вне инита, то всё ок, спайдер начинает парсить без проблем. Код такой:class NikeSpider(CrawlSpider):
name = 'nike'
allowed_domains = ['nike.com']
LOCALE = 'gb'
rules = [
Rule(LinkExtractor(allow=fr'www.nike.com/{LOCALE}/*'), callback='parse', follow=True)
]
start_urls = [f'https://www.nike.com/{LOCALE}/']
Но в таком случае передача параметра LOCALE не работает и локаль не параметризуется. Скажите, пожалуйста, в чем может быть дело и как это можно настроить?AR
__init__, поэтому присваивать их после его вызова уже поздноAR
VB
VB
МС
B
МС
B
МС
МС
МС
A
A
МС
МС
TM