Почему не отрабатывает условие в функции scrapy?

Изучаю Scrapy и столкнулся с такой проблемой. Хочу вернуться на предыдущую функция, но условие else почему-то не отрабатывает. Никаких ошибок не выдает, что не так?

    def parse_sub_cat(self, response):
    for i in response.xpath('//a[@data-track-action="CategoryOverviewNavigation"]'):
        goods_url = response.urljoin(i.xpath("./@href").get())
        product_parent = i.xpath("./text()").get()
        yield response.follow(
            url=goods_url,
            callback=self.parse_cat,
            cb_kwargs=dict(product_parent=product_parent)
        )

    def parse_cat(self, response, **cb_kwargs):
    search_prod = response.css('article.m-grid-tile').css('div.m-grid-tile--image')
    if search_prod is not None:
        for i in search_prod:
            ulr_product = response.urljoin(i.css('a::attr("href")').get())
            cb_kwargs['model'] = i.css('a::attr("aria-label")').get()
            yield response.follow(
                url=ulr_product,
                callback=self.parse_product,
                cb_kwargs=cb_kwargs
            )
    else:
        yield scrapy.Request(
            url=response.url,
            callback=self.parse_sub_cat,
        )

в функции parse_cat, мне нужно чтобы если переменная search_prod пустая, то бралась текущая ссылка и вызывалась повторно предыдущая функция parse_sub_cat. Так вообще, можно делать?


Ответы (0 шт):