32 lines
1.2 KiB
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('http://www.crcivan.com/escaparate/noticias.cgi?idnoticias=192683'));
|
|
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');
|
|
}
|
|
}
|
|
}
|