Python Scrapy Extract Значение арии-лейбла - PullRequest
0 голосов
/ 03 сентября 2018

Я новичок в Scrapy и пытаюсь почистить страницу с ярлыком арии в классе:

<body>
  <div class="item-price" aria-label="$1.99">
    .....
  </div>
</body>

Я пытаюсь извлечь ярлык со следующим анализом на моем пауке:

def parse(self, response):
   price = circular_item.css("div.item-price > aria-label::text").extract()
   yield price

Когда я запускаю паука, я получаю следующую ошибку:

2018-09-02 18:34:03 [scrapy.core.scraper] ERROR: Spider must return Request, BaseItem, dict or None, got 'list' in <GET https://example.com/test.html>

Как мне извлечь значение aria-label здесь?

Ответы [ 2 ]

0 голосов
/ 03 сентября 2018

Если вы хотите использовать css-экстрактор вместо xpath:

def parse(self, response):
    item = {response.css('div.item-price::attr(aria-label)').extract_first()}
    yield item
0 голосов
/ 03 сентября 2018

В вашем коде несколько ошибок:

def parse(self, response):
   item = {}
   item["price"] = response.xpath('//div[@class="item-price"]/@aria-label').extract_first()
   yield item
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...