Hola,
Por favor, te comento un poco porque he probado hacer scraping, tambien con
codigo html y javascript. He probado con una herramienta de github,
creo que tambien he mirado phyton.
Necesitaria los **precios hora** como en esta web www.tarifaluzhora.es, y tambien una **grafica** que tiene abajo.
Probé este codigo html en mi web que me dijo la ia, pero no funciona.
Qué habría que hacer?
Un saludo, gracias.
----
Un saludo, gracias.
Por favor, te comento un poco porque he probado hacer scraping, tambien con
codigo html y javascript. He probado con una herramienta de github,
creo que tambien he mirado phyton.
Necesitaria los **precios hora** como en esta web www.tarifaluzhora.es, y tambien una **grafica** que tiene abajo.
Probé este codigo html en mi web que me dijo la ia, pero no funciona.
Qué habría que hacer?
Un saludo, gracias.
----
Código:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Precios de la Luz</title>
<style>
table {
width: 100%;
border-collapse: collapse;
}
th, td {
border: 1px solid #ddd;
padding: 8px;
text-align: center;
}
th {
background-color: #f2f2f2;
}
.highlight {
color: red; /* Cambia esto según sea necesario para el
precio más alto */
}
</style>
</head>
<body>
<h1>Precios de la Luz</h1>
Precio ahora mismo: <strong id="current-price">Cargando...</strong><br>
Precio medio del día: <strong id="average-price">Cargando...</strong><br>
Precio más bajo del día: <strong id="lowest-price"
class="highlight">Cargando...</strong><br>
Precio más alto del día: <strong id="highest-price"
class="highlight">Cargando...</strong><br>
<h2>Precios por Hora</h2>
<table id="price-table">
<thead>
<tr>
<th>Hora</th>
<th>Precio (€/kWh)</th>
</tr>
</thead>
<tbody>
<!-- Aquí se añadirán dinámicamente las filas de precios
por hora -->
</tbody>
</table>
<p>Datos extraídos de la Red Eléctrica de España. Precio medio del
día: Media aritmética de los precios del día en función del tipo de
tarifa.</p>
<script>
async function fetchPrices() {
const date = new Date();
const startDate = date.toISOString().split('T')[0]; //
Fecha de hoy en formato YYYY-MM-DD
const endDate = date.toISOString().split('T')[0]; // Fecha
de hoy en formato YYYY-MM-DD
const url =
`https://api.esios.ree.es/indicators/1013?start_date=${startDate}T00:00:00&end_date=${endDate}T23:59:59`;
try {
const response = await fetch(url, {
headers: {
'Authorization': 'Token
mi token' //
Tu token
}
});
if (!response.ok) {
throw new Error('Error en la red');
}
const data = await response.json();
// Obtener precios y actualizar el HTML
const currentPrices = data.indicator.values[0]; // El
primer valor es el actual
document.getElementById('current-price').innerText =
`${currentPrices.value}€/kWh`;
document.getElementById('average-price').innerText =
`${currentPrices.average}€/kWh`;
document.getElementById('lowest-price').innerText =
`${currentPrices.min}€/kWh`;
document.getElementById('highest-price').innerText =
`${currentPrices.max}€/kWh`;
// Actualiza la tabla de precios por hora
const tableBody =
document.getElementById('price-table').getElementsByTagName('tbody')[0];
tableBody.innerHTML = ''; // Limpiar tabla antes de
agregar nuevas filas
data.indicator.values.forEach((value) => {
const row = document.createElement('tr');
const hour = new
Date(value.datetime).toLocaleTimeString([], { hour: '2-digit', minute:
'2-digit' });
row.innerHTML =
`<td>${hour}</td><td>${value.value}€/kWh</td>`;
tableBody.appendChild(row);
});
} catch (error) {
console.error('Error al fetch los precios:', error);
}
}
// Llama a la función al cargar la página
fetchPrices();
</script>
</body>
</html>
Un saludo, gracias.