Código fuente HTML del navegador web
¿Guardar cuadro de diálogo de archivo? ¿ahorrar? =?¿Nuevo? SaveFileDialog();
¿HttpWebRequest? ¿preguntar? =?(http WebRequest)solicitud web. Crear(esta . txt URL . texto);
¿WebResponse? ¿respuesta? =?Solicitud. GetResponse();
¿StreamReader? ¿leer? =?¿Nuevo? StreamReader(response.GetResponseStream(),?encoding.getencoding(" GB 2312 ");
String?str?=?Read.ReadToEnd();
¿Cadena? ¿Título? = ?webHtml. GetElementsByTagName("title")[0]. //Cambiar el valor del atributo src de la imagen descargada a la URL local
HtmlElementCollection =?webHtml.Image;
foreach?(HtmlElement?img?in?imgCollection)
Cadena? img.get atributo("src");
int? =?imgSrcLastIndexOf("/");
Ruta? =?imgSrcSubstring(0, imgNameIndex);
str?=?strait.replace(ruta, "imagen");
} p>
//El nombre de la página web descargada es el título de la página web
Filename?=?Title;
Save.Page, all(. *.htm,*.html)|*.htm, *.html ";
¿Si? (Save.ShowDialog()?!=?DialogResult.OK)? Regresar;
//Escriba los datos descargados (código fuente html) Ingrese el archivo html local y genere una nueva página estática local
FileStream? ¿Nuevo? ;
StreamWriter ? escritor ? = ? nuevo
Escritor. /p>
File stream. close();
//Crea una nueva carpeta de imágenes para almacenar las imágenes de la página de descarga.
Crea un directorio("images". );
//Descargar todas las imágenes de la página
foreach? (HtmlElement? img? in? img collection)
{
//Obtiene los nombres de todas las imágenes de la página.
¿Cadena? imgSrc? =?img. obtener atributo(" src ");
int? imgNameIndex? =?imgSrcLastIndexOf("/");
¿Cadena? imgNombre? =?imgSrcSubstring(imgNameIndex?+?1);
Cliente de red.
DownloadFile(imgSrc, "images/"?+?img name);
}
}
La interfaz es como se muestra en la figura. Los siguientes controles son controles del navegador web. La idea general es descargar el código fuente html de la página y regenerar la página estática local. Si desea abrir una página estática normalmente, debe modificar las rutas de las imágenes, videos e hipervínculos (no las rutas de las páginas estáticas locales). Para descargar todas las subpáginas, puede descargar enlaces en un bucle recursivo.