Get class name using Scrapy

Question:

I am trying to get the products’ ratings of a webpage. The rating is in <bl-rating>:

enter image description here

To get the title of the product, I did:

'title':product.css('h2::text').get()

Is there a way to get the rating (4.714…) using a similar technique?

Asked By: soffamumie

||

Answers:

Rating isn’t text node value rather attribute value.So You have to invoke ::attr(rating) instead of ::text to get that value as string/text.

'rating':product.css('bl-rating::attr(rating)').get()

Using an xpath expression:

After iterating over an array/list of elements, the subsequent xpath expression would be a relative expression (.//)

'rating':product.xpath('.//bl-rating/@rating').get()
Answered By: F.Hoque

This is more for anyone who might find this answer in the future.

You can also extract the rating value using an xpath expression.

For Example:

'rating': response.xpath('//bl-rating/@rating').get()
Answered By: Alexander
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.