Extracción de información de productos con HTML y Python
Clase 5 de 15 • Curso de Web Scraping con Python
Resumen
Extraer información de productos de páginas web se ha convertido en una habilidad clave en el entorno digital actual. Usando Python y técnicas de web scraping, podemos obtener datos específicos como títulos, precios e imágenes directamente desde sitios web, facilitando análisis posteriores o su almacenamiento para diversos usos.
¿Qué información específica podemos obtener mediante web scraping?
Con la herramienta adecuada, es posible seleccionar e identificar claramente los elementos que deseamos capturar. En este ejemplo, se usan etiquetas HTML específicas como:
article
: que engloba la información de cada producto.h3
: que contiene el título del producto.- La etiqueta
p
con claseprice color
para el precio. img
para obtener la URL de la imagen del producto.
Al identificar estas etiquetas y sus clases específicas, podemos extraer datos precisos de forma organizada.
¿Cómo podemos implementar el código para obtener estos datos?
La implementación del código para realizar esta extracción involucra:
- Definición de la URL objetivo y realizar una petición GET.
- Uso del método
select
para capturar artículos específicos con una clase definida.
products = sub.select(".PRODUCT-POT")
- Iterar sobre los productos para extraer datos deseados del título, precio e imagen:
# Extraer título de producto
nombre = producto.find("h3").find("a")['title']
# Extraer precio
precio = producto.find("p", class_="price color").get_text()
# Extraer URL de imagen y completar URL relativa
imagen_relativa = producto.find("div", class_="CONTAINER").find("img")['src']
imagen_url = url_sitio + imagen_relativa
Con estas sencillas líneas, obtenemos información exacta y relevante de cada elemento.
¿Cómo guardar esta información capturada en un archivo?
Guardar los datos recogidos en un archivo CSV permite revisar fácilmente los resultados. Puedes realizarlo así:
with open("resultados/productos.csv", "w", newline="", encoding="utf-8") as file:
columnas = ["Nombre", "Precio", "Imagen URL"]
writer = csv.DictWriter(file, fieldnames=columnas)
writer.writeheader()
writer.writerows(productos)
Una vez ejecutado el código, podrás verificar la exitosa extracción al revisar el archivo CSV generado, donde encontraras organizados claramente todos los datos capturados.
¿Te interesa profundizar más en esto?
Si buscas llevar este ejercicio un paso más allá, te propongo añadir el número de estrellas de cada libro y verificar si está en stock. ¿Te animas a intentarlo? Comparte tu solución en comentarios, ¡te leemos!