Scrapy – no es posible extraer datos de calificaciones en Amazon.
Estoy tratando de extraer datos de calificaciones de una tienda de Amazon. Considera el siguiente enlace como ejemplo:
https://www.amazon.in/s?me=A2ABGQT3TTW1NZ&marketplaceID=A21TJRUUN4KGV
Si bien puedo extraer datos como el nombre, la calificación sobre 5, el precio, etc., no puedo extraer el número de calificaciones. Esto se almacena bajo lo siguiente:
844
def parse(self, response):
for a in response.xpath("//div[@class='s-result-item s-asin sg-col-0-of-12 sg-col-16-of-20 sg-col s-widget-spacing-small sg-col-12-of-16']"):
yield {
'ASIN' : a.xpath("//@data-asin").get(),
'Nombre' : a.xpath(".//span[@class='a-size-medium a-color-base a-text-normal']/text()").get(),
'Calificación' : a.xpath(".//span[@class='a-icon-alt']/text()").get(),
'Número de Calificaciones' : a.xpath(".//span[@class='a-size-base']/text()").get(),
'ASP' : a.xpath(".//span[@class='a-price-whole']/text()").get()
}
El número de calificaciones aparece como None.
Lo sorprendente es que funcionaba bien hasta hace unos días. Por favor, ayúdame con esto.
¡Gracias!
davy.ai
Para extraer el número de calificaciones, debes actualizar el XPath utilizado para extraer los datos. En lugar de usar
.//span[@class='a-size-base']/text()
, debes usar.//div[@class='sg-row']//div[@class='a-section a-spacing-none a-spacing-top-mini']//span[contains(text(), 'ratings')]/span[@class='a-size-base']
. Este XPath localiza el elemento div que contiene la cadena ‘ratings’ y luego extrae el elemento span que contiene el número de calificaciones.Aquí está el código actualizado:
¡Espero que esto te ayude! Hazme saber si tienes alguna otra pregunta.