Scrapy: Keyerror, даже когда элементы четко определены - PullRequest
0 голосов
/ 05 ноября 2018

Этот скребок завершен и должен быть в рабочем состоянии, однако элементы кажутся неопределенными и вызывают ошибку при попытке сканирования. Это очень простой паук и имеет только 2 предмета.

spider.py

items.py

Scrap Shell

Я смотрел на то, как это структурировано снова и снова, но не могу найти ничего плохого в коде. Элементы, кажется, четко определены, и скребок работает, но выдает ошибки.

Любая помощь или совет здесь будет принята с благодарностью!

Ответы [ 3 ]

0 голосов
/ 05 ноября 2018

Я использую Scrapy более 4 лет и никогда не чувствовал, что использую Items класс

В вашем случае, просто сделайте это

item = {}
item['title'] = SOMETHING_HERE
item['price'] = SOMETHING_HERE
yield item
0 голосов
/ 05 ноября 2018

Вы создаете пустой класс BestbuyscraperItem. Если вы видите код в scrapy repo , если вы не передадите аргументы, класс элементов создаст пустой словарь. И setitem выдаст ошибку ключа при установке значения.

Вы должны сделать что-то вроде этого

title = extract title 
price = extract price 
item = BestbuyscraperItem(title=title , price=price )

См. пример

0 голосов
/ 05 ноября 2018

проверьте, было ли установлено поле или нет, просто проверьте ключ поля в экземпляре элемента. Вы, вероятно, должны проверить свой xpath

...