Raspe las revisiones de productos de Amazon y los datos de precios usando Python

Publicado: 2018-08-28
Mostrar tabla de contenido
¿Por qué raspar las reseñas de productos de Amazon?
Web Scraping Reseñas de productos de Amazon usando Python
¿Qué hará este programa de Web Scraping?
Cosas para recordar al extraer reseñas de productos de Amazon y datos de precios
¿Necesita ayuda con la extracción de datos web?

Sun Tzu dijo en El arte de la guerra : “ Si conoces al enemigo y te conoces a ti mismo, no debes temer el resultado de cien batallas”. Esto es cierto para casi todos los negocios, especialmente el negocio de comercio electrónico. Es posible que tenga la idea correcta, las personas adecuadas, la USP correcta, los productos correctos y los precios correctos. De alguna manera, no es suficiente. También necesita tener suficientes datos e ideas de la competencia para determinar si su modelo de negocio será un éxito. Esta es la razón por la que casi todas las empresas de comercio electrónico que se avecinan primero rastrean Amazon para ver cómo se compara con el Goliat del comercio electrónico.

¿Por qué raspar las reseñas de productos de Amazon?

Además de tener categorías de productos enormes y profundas, Amazon realiza envíos a casi todos los rincones del mundo y tiene trece sitios web específicos de países. El raspado de datos de productos en Amazon puede brindarle información interesante sobre productos y negocios.

La automatización de este código con la ayuda de un proveedor de servicios puede permitirle rastrear datos de productos de Amazon por marca y categoría, y crear su propia base de datos de productos, antes de configurar su tienda de comercio electrónico. Le ayudará a ahorrar una cantidad considerable de horas de mano de obra y dinero si recién está comenzando su negocio.

Web Scraping Reseñas de productos de Amazon usando Python

En el artículo "Cómo extraer datos de hoteles del sitio de viajes", le mostramos cómo configurar el entorno de web scraping. Simplemente siga los pasos si es nuevo en Python. Todo sigue igual. Instale Atom, Python, luego use pip para instalar BeautifulSoup, luego copie y pegue este programa en la pantalla del editor y guárdelo con el nombre de amazon_data_extractor.py

En caso de que tenga dificultades para copiar el código, también puede descargarlo desde aquí. Puede descargar el archivo y abrirlo en Atom.

[lenguaje de código = "python"]
#!/usr/bin/python
# -*- codificación: utf-8 -*-
importar urllib.request
importar urllib.parse
importar urllib.error
de bs4 importar BeautifulSoup
importar ssl
importar json

# Para ignorar los errores del certificado SSL
ctx = ssl.create_default_context()
ctx.check_hostname=Falso
ctx.verify_mode = ssl.CERT_NONE

url=input(“Ingrese la URL del producto de Amazon-“)
html = urllib.request.urlopen(url, context=ctx).read()
sopa = BeautifulSoup(html, 'html.parser')
html = sopa.prettify('utf-8')
producto_json = {}
# Este bloque de código ayudará a extraer la marca del artículo
para divs en sopa.findAll('div', attrs={'class': 'a-box-group'}):
probar:
product_json['marca'] = divs['datos-marca']
descanso
excepto:
pasar
# Este bloque de código ayudará a extraer el título de producto del artículo
para tramos en sopa.findAll('span', attrs={'id': 'productTitle'}):
nombre_del_producto = spans.text.strip()
product_json['nombre'] = nombre_del_producto
descanso
# Este bloque de código ayudará a extraer el precio del artículo en dólares
para divs en sopa.findAll('div'):
probar:
precio = str(divs['datos-como-precio'])
product_json['precio'] = '$' + precio
descanso
excepto:
pasar
# Este bloque de código ayudará a extraer la imagen del artículo en dólares

para divs en sopa.findAll('div', attrs={'id': 'rwImages_hidden'}):
para img_tag en divs.findAll('img', attrs={'style': 'display:none;'
}):
product_json['img-url'] = img_tag['src']
descanso
# Este bloque de código ayudará a extraer la calificación promedio de estrellas del producto
para i_tags en sopa.findAll('i',
attrs={'data-hook': 'promedio de calificación de estrellas'}):
para tramos en i_tags.findAll('span', attrs={'class': 'a-icon-alt'}):
product_json['calificación con estrellas'] = spans.text.strip()
descanso
# Este bloque de código ayudará a extraer la cantidad de reseñas de clientes del producto
para tramos en sopa.findAll('span', attrs={'id': 'acrCustomerReviewText'
}):
si abarca.texto:
review_count = abarca.texto.strip()
product_json['revisiones-de-clientes-recuento'] = recuento_revisiones
descanso
# Este bloque de código ayudará a extraer las mejores especificaciones y detalles del producto
product_json['detalles'] = []
para ul_tags en sopa.findAll('ul',
attrs={'clase': 'a-lista-desordenada a-vertical a-espaciado-ninguno'
}):
para li_tags en ul_tags.findAll('li'):
para tramos en li_tags.findAll('span',
attrs={'class': 'a-list-item'}, text=True,
recursivo=Falso):
product_json['detalles'].append(spans.text.strip())

# Este bloque de código ayudará a extraer las reseñas cortas del producto

product_json['reseñas cortas'] = []
para a_tags en sopa.findAll('a',
attrs={'class': 'a-size-base a-link-normal review-title a-color-base a-text-bold'
}):
short_review = a_tags.text.strip()
product_json['reseñas cortas'].append(breve_revisión)
# Este bloque de código ayudará a extraer las reseñas largas del producto
product_json['reseñas largas'] = []
para divs en sopa.findAll('div', attrs={'data-hook': 'review-collapsed'
}):
revisión_larga = divs.text.strip()
product_json['revisiones largas'].append(revisión_larga)
# Guardando el archivo html raspado
con open('output_file.html', 'wb') como archivo:
archivo.escribir(html)
# Guardar los datos raspados en formato json
con open('product.json', 'w') como archivo de salida:
json.dump(producto_json, archivo de salida, sangría=4)
print ('———-La extracción de datos está completa. Verifique el archivo json.———-')

[/código]

¿Qué hará este programa de Web Scraping?

Bueno, déjame explicarte con un ejemplo. Le mostraré una página de producto en Amazon con reseñas y lo que devuelve el programa, cuando las URL se envían al programa dado.

Tomemos esta computadora portátil Dell en Amazon. Cuando ejecute el programa, imprimirá "Ingrese la URL del producto de Amazon-"

Cuando lo haga, simplemente copie y pegue la URL proporcionada anteriormente. Al hacerlo, se generará el siguiente JSON con el nombre de product.json en su directorio actual. Se genera un enlace para que coincida con su JSON.

[lenguaje de código = "python"]
{
“marca”: “Acer”,
"nombre": "2018 Más nuevo Acer Chromebook HD de 14 pulgadas Pantalla LED antirreflejo, procesador Intel Celeron 3855u de doble núcleo a 1,6 GHz, 4 GB de RAM, SSD de 16 GB, HDMI, USB 3.0, cámara web, Wi-Fi 802.11a, Bluetooth, Google Chrome sistema operativo”,
“precio”: “$229.00”,
“img-url”: “https://images-na.ssl-images-amazon.com/images/I/41nlp137qeL._SX300_QL70_.jpg”,
“calificación de estrellas”: “4.2 de 5 estrellas”,
“revisiones-de-clientes-recuento”: “79 opiniones de clientes”,
"detalles": [
Pantalla retroiluminada WLED HD antirreflejo de “14” (1366 × 768) con tecnología Acer ComfyView, lector de medios integrado”,
“Procesador Intel dual-core Skylake Celeron 3855U 1.60 GHz 2M Cache, Intel HD Graphics 510, cámara web HD integrada con micrófono”,
"Memoria LPDDR3 de 4 GB, memoria flash eMMC de 16 GB, compatibilidad con la nube integrada: guarde fácilmente sus archivos en su cuenta de Google Drive para acceder de forma segura dondequiera que vaya",
“WiFi 802.11a de alta velocidad, Bluetooth, HDMI, 2x USB 3.0, 1x USB 3.1 Tipo-C, 1x conector combinado para auriculares/micrófono”,
“Google Chrome OS, hasta 10 horas de duración de la batería, color: negro”
],
“reseñas cortas”: [
“La mejor y más segura computadora para navegar por la Web y ver videos de todo tipo.”,
“… solo tuve esto por un par de días pero me encanta. Pasé de un macbook a este…”,
"Excelente para el trabajo escolar... y Netflix",
"Este NO es un Acer más nuevo de 2018; la fecha de fabricación es 08/2016",
“PRODUCTO IMPRESIONANTE… FÁCIL DE USAR”,
“Me encanta este portátil”,
“… es la pantalla más grande, a mamá parece encantarle.”,
"fácil de usar"
],
“reseñas largas”: [
“Ya tengo un Acer Chromebook de 11.5”, compré hace unos años y en base al éxito de este primero, decidí seguir adelante y comprar otro de mayor tamaño. AMO, AMO mis dos Acer Chromebooks. En el pasado cometí el error de comprar un tipo de computadora regular de Microsoft Windows, y pocos de ellos todavía tienen en casa, pero después de descubrir el Acer Chromebook, debo decir que desearía haber sabido antes sobre la superioridad de un Chromebook sobre un Windows. , producto de Microsoft... No quiero abrir una guerra de computadoras del tipo de Microsoft Windows contra un Chromebook de Acer aquí... Solo digo... si está satisfecho con su producto de Microsoft Windows, no estoy criticando su compra, lo que estoy decir es que tener ambos productos en casa... Me encanta la simplicidad de Acer Chromebook sobre los "OTROS"... Soy plenamente consciente de que una computadora tipo Microsoft Windows puede hacer otras cosas que una Chromebook no puede hacer, pero si usted es simplemente navegando por la web y consumiendo muchos medios web, Facebook o Yahoo Mail, YouTube, Netflix... Nada supera a Acer Chromebook en confiabilidad y velocidad. Acer Chromebook se enciende a la velocidad de la luz y no hay virus de ningún tipo de los que preocuparse. Además, no se ralentiza al actualizar el sistema como lo hace constantemente Microsoft Windows... Sí, con una pantalla de 15,6 pulgadas, es una pequeña joya y el precio fue muy bueno... Gracias, Amazon. Y gracias ACER.”,
“Solo he tenido esto por un par de días, pero me encanta. Pasé de un macbook a este y esperaba estar decepcionado. No tuve que ajustar ninguna de las configuraciones ni nada con esta computadora portátil. Inicie sesión en mi gmail y todo fue perfecto. Hasta el momento no tengo quejas. No puedo creer lo barato que era.”,
“Lo tengo desde hace más de un mes. Es una máquina rápida y fácil de usar con una pantalla grande. Lo compré para que mi hija lo use para la tarea. Nuestra escuela, como muchas, usa Google Docs para gran parte del trabajo que se realiza en línea. Un Chromebook es todo lo que necesitan, ¡no necesitan Microsoft! ¡Por supuesto que a mi hija le gusta la pantalla grande para ver Netflix cuando termina la tarea!”,
“NO es un Chromebook 2018 como se indica en el título. Esperaba un Chromebook fabricado a fines de 2017 o 2018. Este Chromebook en particular se fabricó en agosto de 2016. Título muy engañoso... definitivamente no es el "2018 más nuevo". Sin embargo, el Chromebook parece ser bastante decente.”,
“Estaba cansado de las actualizaciones defectuosas de Windows 10 y necesitaba una computadora confiable. El Acer me lo recomendaron varios amigos. Lo compré la semana pasada y me encanta. Fácil de configurar y entender, sin calor del disco duro, rápido, menos complicado, buena calidad, etc. Todavía tengo mi Dell con Windows 10, pero por ahora este Acer Chromebook es mi primera opción. Lleva un poco de tiempo acostumbrarse a un teclado con menos teclas y más juntas, pero no tengo otros reparos sobre este Chromebook. Cada día aprendo más sobre el Chromebook y aprecio su simplicidad y la ausencia de seguridad adicional. Excelente valor y rendimiento. Estaba satisfecho con el precio y las funciones de Acer. Fácil de conectar a Ethernet con un adaptador si es necesario.”,
“¡Me encanta esta computadora portátil! Si bien estoy acostumbrado a las Macbooks, mi amado murió recientemente. No estaba en el mercado buscando otra macbook (no por elección) y necesitaba una nueva computadora portátil rápidamente. Investigué un poco rápidamente y vi buenas críticas en esta computadora portátil. Pedí en Amazon Prime y lo recibí en 3 días. ¡Estoy impresionado! Chomebook me ha hecho la vida extremadamente fácil. ¡Todo está conectado! Hay algo en el teclado que facilita escribir. ¡ME ENCANTA!",
"Un poco pesado, pero es la pantalla más grande. A mamá parece encantarle... No más desorden en la pantalla del escritorio... Gracias",
“comprado para un pariente anciano. ¡fácil de usar!"
]
}
[/código]

También verá que hemos guardado la página html raspada con el nombre de archivo_salida.html en el mismo directorio de trabajo. Aquí está el enlace para comprobar cómo se eliminó el documento html para esta página de producto en particular. Puede intentar extraer datos de productos de Amazon de este html usando BeautifulSoup.

Cosas para recordar al extraer reseñas de productos de Amazon y datos de precios

1. Obtendrá lo siguiente de una página de producto de Amazon, sobre el uso de este raspador de producto

    • una. Marca
    • b. Nombre
    • C. Precio
    • d. URL de la imagen
    • mi. Clasificación de estrellas
    • F. Número de reseñas de clientes
    • mi. Detalles importantes
    • F. Reseñas cortas
    • gramo. Reseñas largas

Cada punto de datos estará presente en el JSON (es posible que falten uno o dos si no están presentes para un producto, o si el raspador no puede localizarlo). Cada punto de datos también vendrá con su respectiva etiqueta.

2. Bueno, no podemos garantizar que cada URL de la página del producto se procesará sin problemas con este código. Esto se debe a que Amazon sigue cambiando su código regularmente y también todos los artículos o todas las subcategorías no tienen el mismo formato HTML CSS.

3. Si ejecuta este programa varias veces, en un período corto de tiempo, es posible que encuentre este error, el error HTTP 503. Es un error del lado del servidor. Pero lo que significa en este caso es que Amazon está bloqueando sus intentos de rastrear datos. Entonces, cuando raspa Amazon para uso profesional, siempre se sugiere que obtenga ayuda de los servicios de raspado web como PromptCloud. Los servicios de raspado web pueden configurar un sistema para usted, que rastreará automáticamente todos los datos que necesita, para que pueda concentrarse en su negocio, sin preocuparse por los datos.

4. El programa es válido únicamente para www.amazon.com y no ha sido probado en ninguno de los sitios web específicos de su país.

Tenemos nuevos sitios de comercio electrónico configurando tiendas casi todos los días. Entre una competencia tan dura, el sustento y las ganancias comerciales se vuelven difíciles en ausencia de información sobre la competencia. Los datos de productos de Amazon podrían ser el punto de referencia y el punto de partida para usted. Web scraping Amazon puede brindarle información sobre productos que lo ayudarán a crear y escalar la estrategia comercial y la categoría de producto correctas.

¿Necesita ayuda con la extracción de datos web?

Obtenga datos limpios y listos para usar de sitios web para aplicaciones comerciales a través de nuestros servicios de web scraping. Contáctenos.

Descargo de responsabilidad: el código proporcionado en este tutorial es solo para fines de aprendizaje. No somos responsables de cómo se usa y no asumimos ninguna responsabilidad por cualquier uso perjudicial del código fuente.