Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Para guardar un sitio web o una página web en HTML en C#, cargue la URL con HTMLDocument, cree HTMLSaveOptions cuando necesite personalizar el manejo de recursos y llame a document.Save(savePath, options). Use ResourceHandlingOptions para controlar JavaScript, páginas vinculadas, restricciones de URL y recursos guardados.
Aunque el acceso a Internet suele estar disponible, puede necesitar una copia sin conexión de una página web para lectura, investigación, archivado, migración o procesamiento de documentos. Guardar un sitio web en HTML permite conservar el contenido de la página y los recursos relacionados fuera del sitio original.
Hay varias razones para convertir un sitio web a HTML:
Este artículo muestra cómo guardar un sitio web o una página web usando la API Aspose.HTML for .NET. Puede personalizar el proceso – guardar un sitio web completo o guardar una sola página web.
Puede usar la biblioteca Aspose.HTML for .NET para convertir un sitio web a HTML para lectura sin conexión y archivado de recursos. Siga estos pasos:
HTMLDocument desde una URL y convertir una página web a HTML.HTMLSaveOptions, el proceso funcionará con las opciones de guardado predeterminadas, como se muestra en el ejemplo siguiente.El siguiente ejemplo de C# muestra cómo guardar una página web. Con las opciones de guardado predeterminadas, solo se guarda una página web independiente con sus recursos relacionados. Tenga en cuenta que solo se guardarán los recursos que estén en el mismo dominio que la página del sitio.
1// Extract and save a wab page with default save options in C#
2
3// Initialize an HTML document from a URL
4using HTMLDocument document = new HTMLDocument("https://docs.aspose.com/html/net/message-handlers/");
5
6// Prepare a path to save the downloaded file
7string savePath = Path.Combine(OutputDir, "root/result.html");
8
9// Save the HTML document to the specified file
10document.Save(savePath);Con la funcionalidad descrita en este artículo, puede guardar tanto páginas individuales como sitios web completos con recursos. Para personalizar el proceso de guardado, puede especificar opciones de manejo de recursos para el objeto HTMLSaveOptions.
Las clases HTMLSaveOptions y ResourceHandlingOptions permiten personalizar el proceso de guardado. Por ejemplo, puede controlar la profundidad de las páginas que se manejarán y guardar un sitio web completo o solo una página web.
La siguiente tabla resume las principales propiedades de la clase ResourceHandlingOptions. Proporcionan opciones para manejar la profundidad máxima de página, aplicar límites o gestionar recursos externos como imágenes, archivos CSS y JavaScript al cargar un documento HTML mediante la API.
| Propiedad | Descripción |
|---|---|
| Default | Obtiene o establece un enum que representa el método predeterminado de manejo de recursos. Actualmente se admiten los valores Save, Ignore y Embed. El valor predeterminado es Save, lo que significa que el recurso se guardará como archivo. |
| JavaScript | Representa cómo se manejan los scripts. Actualmente se admiten los valores Save, Ignore, Discard y Embed. El valor predeterminado es Save, lo que significa que el recurso se guardará como archivo. |
| MaxHandlingDepth | Define la profundidad máxima de páginas que se manejarán. Use esta propiedad para controlar si Aspose.HTML guarda solo la página web actual, páginas enlazadas directamente o una estructura más profunda del sitio. Una profundidad de 1 significa que solo se manejarán las páginas referenciadas directamente desde el documento guardado. Establecer esta propiedad en -1 hará que se manejen todas las páginas. El valor predeterminado es 0. |
| PageUrlRestriction | Contiene información sobre restricciones aplicadas a las URL de las páginas manejadas. El valor predeterminado es RootAndSubFolders, lo que significa que solo se procesan recursos en la raíz y subcarpetas. |
| ResourceUrlRestriction | Contiene información sobre restricciones aplicadas a las URL de recursos manejados, como CSS, JavaScript, imágenes, etc. El valor predeterminado es SameHost, lo que significa que solo se procesan recursos del mismo host. |
Aspose.HTML permite controlar la lógica para guardar scripts. Pueden guardarse en archivos separados, incrustarse o descartarse del documento resultante. El siguiente ejemplo de C# muestra cómo guardar un sitio web e incrustar recursos JavaScript en el documento HTML resultante.
Para guardar un sitio web desde URL e incrustar recursos JavaScript:
HTMLDocument desde una URL y convertir un sitio web a HTML.ResourceHandling.Embed.En el siguiente ejemplo, la opción ResourceHandling.Embed especifica que cualquier recurso JavaScript debe incrustarse en el documento HTML al guardarlo. Esto significa que el archivo HTML resultante contendrá todos los recursos JavaScript dentro del documento, en lugar de referenciarlos como archivos externos.
1// Download website using HTMLSaveOptions in C#
2
3// Initialize an HTML document from a URL
4using HTMLDocument document = new HTMLDocument("https://docs.aspose.com/html/net/message-handlers/");
5
6// Create an HTMLSaveOptions object and set the JavaScript property
7HTMLSaveOptions options = new HTMLSaveOptions
8{
9 ResourceHandlingOptions =
10 {
11 JavaScript = ResourceHandling.Embed
12 }
13};
14
15// Prepare a path to save the downloaded file
16string savePath = Path.Combine(OutputDir, "rootAndEmbedJs/result.html");
17
18// Save the HTML document to the specified file
19document.Save(savePath, options);La propiedad
MaxHandlingDepth especifica la profundidad máxima de la jerarquía de elementos del documento HTML que se cargará y procesará. La API no cargará ni procesará elementos más allá de esta profundidad. Por lo tanto, MaxHandlingDepth optimiza el rendimiento del proceso de guardado y ayuda a reducir la memoria y la potencia de procesamiento requeridas por la API al limitar el número de elementos procesados.
De forma predeterminada, solo se guarda el documento abierto y sus recursos como una página web individual, pero puede controlar la profundidad de manejo con la propiedad MaxHandlingDepth. El siguiente ejemplo muestra cómo guardar no solo el documento, sino también las páginas a las que enlaza y cuya URL está anidada en relación con la URL de esta página. Veamos el ejemplo de C# cuando esta propiedad se establece en 1, lo que significa que solo se guardarán elementos hasta una profundidad de 1 en la jerarquía del documento HTML:
1// Save a website with limited resource depth using C#
2
3// Load an HTML document from a URL
4using HTMLDocument document = new HTMLDocument("https://docs.aspose.com/html/net/message-handlers/");
5
6// Create an HTMLSaveOptions object and set the MaxHandlingDepth property
7HTMLSaveOptions options = new HTMLSaveOptions
8{
9 ResourceHandlingOptions =
10 {
11 MaxHandlingDepth = 1
12 }
13};
14
15// Prepare the output path for saving the downloaded content
16string savePath = Path.Combine(OutputDir, "rootAndAdjacent/result.html");
17
18// Save the document along with adjacent resources only
19document.Save(savePath, options);Aspose.HTML for .NET proporciona varias opciones para filtrar las URL de páginas guardadas de un sitio web. La propiedad PageUrlRestriction restringe la carga de páginas web desde URL o dominios específicos al guardar un documento HTML.
De forma predeterminada, la propiedad PageUrlRestriction se establece en RootAndSubFolders, lo que significa que solo se procesan páginas en la raíz y subcarpetas. Sin embargo, puede establecer esta propiedad en otro valor – SameHost o None. Establecerla en None permitirá cargar páginas web desde cualquier dominio cuyas URL estén en el sitio web guardado. Es importante usar esta propiedad con cuidado, ya que permitir que se carguen páginas desde cualquier dominio puede aumentar el riesgo de vulnerabilidades de seguridad.
En el siguiente ejemplo, se guardarán, además del documento, todas las páginas a las que hace referencia un documento HTML y que están en el mismo dominio:
1// Save a website with restricted resource URLs using C#
2
3// Initialize an HTML document from a URL
4using HTMLDocument document = new HTMLDocument("https://docs.aspose.com/html/net/message-handlers/");
5
6// Configure HTMLSaveOptions with restricted resource handling
7HTMLSaveOptions options = new HTMLSaveOptions
8{
9 ResourceHandlingOptions =
10 {
11 MaxHandlingDepth = 1,
12 PageUrlRestriction = UrlRestriction.SameHost
13 }
14};
15
16// Prepare the output path for the saved content
17string savePath = Path.Combine(OutputDir, "rootAndManyAdjacent/result.html");
18
19// Save the HTML document and allowed resources to the specified path
20document.Save(savePath, options);| Objetivo | Opción que conviene revisar |
|---|---|
| Guardar solo la página actual y recursos del mismo dominio | Comportamiento predeterminado de HTMLSaveOptions |
| Incrustar JavaScript en el HTML guardado | ResourceHandlingOptions.JavaScript = ResourceHandling.Embed |
| Limitar la profundidad de procesamiento de páginas enlazadas | ResourceHandlingOptions.MaxHandlingDepth |
| Restringir qué páginas enlazadas pueden cargarse | ResourceHandlingOptions.PageUrlRestriction |
| Restringir qué recursos pueden guardarse | ResourceHandlingOptions.ResourceUrlRestriction |
| Problema | Causa | Solución |
|---|---|---|
| Faltan algunos CSS, imágenes o scripts | Las restricciones de URL de recursos o el manejo predeterminado del mismo host impiden descargarlos | Revise ResourceUrlRestriction y asegúrese de que los recursos estén permitidos por las opciones de guardado |
| Las páginas enlazadas no se guardan | MaxHandlingDepth es 0 de forma predeterminada, por lo que solo se guardan el documento abierto y sus recursos | Aumente MaxHandlingDepth cuando necesite procesar páginas enlazadas |
| Se descargan demasiadas páginas | MaxHandlingDepth o PageUrlRestriction es demasiado amplio | Use una profundidad menor y restrinja URL de páginas con RootAndSubFolders o SameHost |
| Los archivos JavaScript siguen siendo externos | El manejo de JavaScript está configurado para guardar archivos por separado o usa el comportamiento predeterminado | Establezca ResourceHandlingOptions.JavaScript en ResourceHandling.Embed cuando el flujo requiera scripts incrustados |
| Falla el guardado de una página remota | El entorno bloquea acceso de red, certificados o recursos remotos | Compruebe permisos de red, configuración de proxy y certificados CA en el entorno de ejecución |
Aspose.HTML for .NET puede guardar una página web y procesar páginas enlazadas y recursos según HTMLSaveOptions y ResourceHandlingOptions. Use MaxHandlingDepth y restricciones de URL con cuidado para controlar cuánto sitio se maneja.
Con las opciones de guardado predeterminadas, se guardan el documento abierto y los recursos relacionados. Las restricciones de manejo de recursos determinan qué recursos se procesan.
Establezca ResourceHandlingOptions.JavaScript en ResourceHandling.Embed dentro de HTMLSaveOptions y luego llame a Save(savePath, options).
Mantenga bajo MaxHandlingDepth y use PageUrlRestriction para limitar las páginas manejadas a la raíz, subcarpetas o el mismo host.
Los ejemplos completos de C# y los archivos de datos están disponibles en el repositorio GitHub de Aspose.HTML for .NET.
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.