ValueError Traceback (последний последний вызов), терминал Python Scrapy - PullRequest
0 голосов
/ 29 января 2019

Я запускаю этот код в оболочке терминала, он выдает ошибку как ValueError Traceback.слишком много значений для распаковки (ожидается 2).Например: марка - A, кошка - AA, BB, CC, DD марка - B, кошка - AA, SS, DD, FF

    scrapy shell 
    cats = response.xpath('//*[@class="leftNavCategoriesNodePopup"]')
    brands = response.xpath('//*[@class="leftNavCategoriesNode"]')
    for cat, brand in cats, brands:
        ca = cat.xpath('.//*[@class="leftNavCategoriesNodePopupColumn"]/a/@href').extract()
        br = brand.xpath('.//*[@class="leftNavCategoriesNodeName"]/text()').extract()
        print(ca)
        print(br)

ValueError Traceback (последний последний вызов)

Ответы [ 2 ]

0 голосов
/ 30 января 2019
    cats = response.xpath('//*[@class="leftNavCategoriesNodePopup"]')
    brands = response.xpath('//*[@class="leftNavCategoriesNode"]')
    for cat,brand in zip(cats, brands):
        ca = cat.xpath('.//*[@class="leftNavCategoriesNodePopupColumn"]/a')
        br = brand.xpath('.//*[@class="leftNavCategoriesNodeName"]/text()').extract()
        for c in ca:
            cq = c.xpath('.//@href').extract()
            yield{'br':br, 'cq':cq}
0 голосов
/ 29 января 2019

Вы уверены, что кошки + бренды одинаковой длины?если да, то используйте как:

for cat, brand in zip(cats, brands):
    #Your work goes here.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...