Generation

code to explanationMon, 14 Apr 2025

import requests from bs4 import BeautifulSoup import csv base_url = "https://books.toscrape.com/catalogue/page-{}.html" libros = [] # Función para traducir el rating en texto a número def convertir_rating(texto): niveles = { "One": 1, "Two": 2, "Three": 3, "Four": 4, "Five": 5 } return niveles.get(texto, 0) # Recorrer las primeras 5 páginas for pagina in range(1, 6): url = base_url.format(pagina) response = requests.get(url) if response.status_code != 200: print(f"No se pudo acceder a la página {pagina}") continue soup = BeautifulSoup(response.text, "html.parser") articulos = soup.find_all("article", class_="product_pod") for articulo in articulos: titulo = articulo.h3.a["title"] precio = articulo.find("p", class_="price_color").text rating_class = articulo.p.get("class")[1] # Ej: 'Three' rating = convertir_rating(rating_class) libros.append({ "Título": titulo, "Precio": precio, "Rating": rating }) # Guardar en CSV with open("libros.csv", mode="w", newline="", encoding="utf-8") as archivo: columnas = ["Título", "Precio", "Rating"] escritor = csv.DictWriter(archivo, fieldnames=columnas) escritor.writeheader() for libro in libros: escritor.writerow(libro) print("Scraping completo. Datos guardados en libros.csv")

Please keep input under 1000 characters

Want to kickstart your project?Use the new AI Studio to create your code