Files
app_notificaciones_ador/lib/BloC/DataService.dart

32 lines
1.2 KiB
Dart

import 'package:http/http.dart' as http;
import 'package:html/parser.dart' as htmlParser;
class DataService {
Future<List<Map<String, dynamic>>> obtenerDatos() async {
final response = await http.get(Uri.parse('https://crcivan.asociacionador.es/contenedores.html'));
if (response.statusCode == 200) {
final document = htmlParser.parse(response.body);
final filaTabla = document.querySelectorAll('html > body > div > center > table > tbody > tr > td > div > center > table > tbody > tr > td > table > tbody > tr > td > font > font > table > tbody > tr');
List<Map<String, dynamic>> embalsesData = [];
for (var fila in filaTabla) {
var nombreElemento = fila.querySelector('td > p > span');
var elementos = fila.querySelectorAll('td > span');
if (nombreElemento != null && elementos.isNotEmpty) {
var nombre = nombreElemento.text;
var listaElementos = elementos.map<String>((elemento) => elemento.text).toList();
var embalseMap = {'nombre': nombre, 'elementos': listaElementos};
embalsesData.add(embalseMap);
}
}
return embalsesData;
} else {
throw Exception('Error al obtener datos');
}
}
}