Website to HTML – Sauvegarder un site web en utilisant C#

Site web en HTML

Bien que l’internet filaire ou Wi-Fi soit disponible partout de nos jours, il arrive que vous ne disposiez pas d’une connexion internet de temps à autre, par exemple entre deux stations de métro, lors d’un voyage ou d’un vol. Pour pouvoir accéder aux informations sans connexion réseau, vous devez sauvegarder le contenu de différents sites web afin de les utiliser hors ligne, par exemple pour la lecture, la recherche ou le divertissement.

Il y a plusieurs raisons de vouloir convertir un site web en HTML :

Cet article explique comment sauvegarder un site web ou une page web à l’aide de l’API Aspose.HTML for .NET. Vous pouvez personnaliser le processus – enregistrer un site web entier ou une page web.

Comment sauvegarder une page web

Vous pouvez utiliser la bibliothèque Aspose.HTML for .NET library pour convertir un site web en HTML pour une lecture hors ligne sans aucun problème. Vous devez suivre les étapes suivantes :

  1. Utilisez le constructeur HTMLDocument(Url) pour charger un objet HTMLdocument à partir d’une URL afin de convertir une page web en HTML.
  2. Créez une instance de la classe HTMLSaveOptions et définissez les propriétés requises pour personnaliser le processus d’enregistrement. Si vous n’initialisez pas HTMLSaveOptions, le processus fonctionnera avec les options d’enregistrement par défaut, comme le montre l’exemple ci-dessous.
  3. Appelez la méthode Save(savePath) ou Save(savePath, options) pour sauvegarder le site web hors ligne.

L’exemple C# suivant montre comment enregistrer une page web. Avec les options d’enregistrement par défaut, vous n’enregistrez qu’une page web séparée avec les ressources associées. Veuillez noter que seules les ressources qui se trouvent dans le même domaine que la page du site seront sauvegardées.

 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);

Grâce à la fonctionnalité décrite dans cet article, vous pouvez enregistrer des pages individuelles et des sites web entiers avec des ressources. Pour personnaliser le processus d’enregistrement, vous pouvez spécifier les options de gestion des ressources pour l’objet HTMLSaveOptions.

Options de gestion des ressources

L’utilisation des classes HTMLSaveOptions et ResourceHandlingOptions vous permet de personnaliser le processus d’enregistrement. Par exemple, vous pouvez manipuler la profondeur des pages qui seront traitées et sauvegarder un site web entier ou seulement une page web.

Le tableau ci-dessous résume les principales propriétés de la classe ResourceHandlingOptions. Elles fournissent des options pour gérer la profondeur maximale des pages, appliquer des limites ou gérer les ressources externes telles que les images, les fichiers CSS et JavaScript lors du chargement d’un document HTML à l’aide de l’API.

PropertyDescription
DefaultGets or sets an enum representing the default resource handling method. Currently, Save, Ignore, and Embed values are supported. The default value is Save, meaning the resource will be saved as a file.
JavaScriptRepresents the way scripts are handled. Currently, Save, Ignore, Discard, and Embed values are supported. The default value is Save, meaning the resource will be saved as a file.
MaxHandlingDepthThis property contains information about the maximum depth of pages that will be handled. Using this property, you can manipulate the depth of pages that will be handled and save entire website or only save a web page. A depth of 1 means only pages directly referenced from the saved document will be handled. Setting this property to -1 will lead to the handling of all pages. The default value is 0.
PageUrlRestrictionContains information about restrictions applied to URLs of handled pages. The default value is RootAndSubFolders, meaning only resources in the root and subfolders are processed.
ResourceUrlRestrictionThis property contains information about restrictions applied to URLs of handled resources such as CSS, js, images, etc. The default value is SameHost, meaning only resources in the same host are processed.

Site Web vers HTML en utilisant la propriété JavaScript

Aspose.HTML permet de contrôler la logique d’enregistrement des scripts. Ils peuvent être enregistrés dans des fichiers distincts, intégrés ou rejetés dans le document résultant. L’exemple C# suivant montre comment enregistrer un site web et incorporer tous les JavaScripts à enregistrer dans un document HTML résultant.

Pour sauver le site web de l’URL, vous devez prendre les mesures suivantes :

  1. Utilisez le constructeur HTMLDocument(Url) pour charger un objet HTMLdocument à partir d’une URL afin de convertir un site web en HTML.
  2. Créez une instance de la classe HTMLSaveOptions et attribuez à la propriété JavaScripts la valeur ResourceHandling.Embed.
  3. Appelez la méthode Save(savePath, options) pour sauvegarder le site web hors ligne.

Dans l’exemple suivant, l’option ResourceHandling.Embed spécifie que toutes les ressources JavaScript doivent être intégrées dans le document HTML lorsqu’il est sauvegardé. Cela signifie que le fichier HTML résultant contiendra toutes les ressources JavaScript à l’intérieur du document plutôt que de les référencer comme des fichiers externes.

 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);

Website to HTML using MaxHandlingDepth Property

La propriété MaxHandlingDepth spécifie la profondeur maximale de la hiérarchie des éléments du document HTML à charger et à traiter. L’API ne chargera ni ne traitera aucun élément au-delà de cette profondeur. Par conséquent, la propriété MaxHandlingDepth optimise les performances du processus d’enregistrement, en aidant à réduire la mémoire et la puissance de traitement requises par l’API en limitant le nombre d’éléments à traiter.

Seuls le document ouvert et ses ressources sont sauvegardés par défaut en tant que page web individuelle, mais vous pouvez contrôler la profondeur de traitement avec la propriété MaxHandlingDepth. L’exemple suivant montre comment sauvegarder non seulement le document, mais aussi toutes les pages auxquelles il renvoie et dont l’URL est imbriquée par rapport à l’URL de cette page. Examinons l’exemple C# lorsque cette propriété est fixée à 1, ce qui signifie que seuls les éléments jusqu’à une profondeur de 1 dans la hiérarchie du document HTML seront sauvegardés :

 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);

Sauvegarder le site web en utilisant la propriété PageUrlRestriction

Aspose.HTML for .NET propose plusieurs options de filtrage des URL des pages enregistrées pour un site web. La propriété PageUrlRestriction restreint le chargement de pages web à partir d’URL ou de domaines spécifiques lors de l’enregistrement d’un document HTML.

Par défaut, la propriété PageRlestriction est fixée à RootAndSubFolders, ce qui signifie que seules les pages de la racine et des sous-dossiers sont traitées. Cependant, vous pouvez définir cette propriété avec une autre valeur – SameHost ou None. La valeur None vous permettra de charger des pages web à partir de n’importe quel domaine dont les URLs se trouvent sur le site web sauvegardé. Il est essentiel d’utiliser cette propriété avec prudence, car permettre le chargement de pages web depuis n’importe quel domaine peut augmenter le risque de vulnérabilités en matière de sécurité.

Dans l’exemple suivant, toutes les pages auxquelles un document HTML fait référence et celles du même domaine seront sauvegardées en plus du document :

 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);

Vous pouvez télécharger les exemples C# complets et les fichiers de données sur GitHub.

Aspose.HTML propose des applications Web HTML qui sont une collection en ligne de convertisseurs gratuits, de fusions, d’outils SEO, de générateurs de code HTML, d’outils URL, et bien plus encore. Les applications fonctionnent sur n’importe quel système d’exploitation doté d’un navigateur web et ne nécessitent aucune installation de logiciel supplémentaire. Convertissez, fusionnez, encodez, générez facilement du code HTML, extrayez des données du web ou analysez des pages web en termes de référencement, où que vous soyez. Utilisez notre collection d’applications web HTML pour effectuer vos tâches quotidiennes et rendre votre flux de travail fluide !

Texte “Applications Web HTML”

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.