Descargando una página web

Dart:
Descargando una página web

Cómo hacerlo:

Dart ofrece el paquete http, una biblioteca de terceros popular para realizar solicitudes HTTP. Aquí hay un ejemplo básico de cómo usarlo para descargar una página web:

Primero, agrega el paquete http a tu pubspec.yaml:

dependencies:
  http: ^0.13.3

Luego, importa el paquete y úsalo para obtener el contenido de una página web:

import 'package:http/http.dart' as http;

Future<void> main() async {
  var url = Uri.parse('http://example.com');
  var response = await http.get(url);
  if (response.statusCode == 200) {
    print('Página descargada:');
    print(response.body);
  } else {
    print('La solicitud falló con el estado: ${response.statusCode}.');
  }
}

Salida de muestra (esto variará en función del contenido de la página web):

Página descargada:
<!doctype html>
<html>
<head>
    <title>Dominio de Ejemplo</title>
...
</html>

Para escenarios más complejos, como manejar cookies o configurar encabezados de agente de usuario, usarías el mismo paquete http pero con configuraciones adicionales a tu solicitud:

import 'package:http/http.dart' as http;

Future<void> main() async {
  var headers = {
    'User-Agent': 'YourCustomUserAgent/1.0',
    'Cookie': 'nombre=valor; nombre2=valor2',
  };
  var url = Uri.parse('http://example.com');
  var response = await http.get(url, headers: headers);

  if (response.statusCode == 200) {
    print('Página descargada con encabezados personalizados:');
    print(response.body);
  } else {
    print('La solicitud falló con el estado: ${response.statusCode}.');
  }
}

Usar encabezados como estos puede imitar más precisamente las solicitudes del navegador, lo cual es particularmente útil al tratar con sitios que tienen requisitos específicos o protecciones contra el raspado.