Des lecteurs comme vous aident à soutenir MUO. Lorsque vous effectuez un achat en utilisant des liens sur notre site, nous pouvons gagner une commission d'affiliation. En savoir plus.

L'analyse consiste à analyser et à interpréter la structure d'un document. Le processus d'analyse peut comprendre l'extraction d'éléments, d'attributs ou de données spécifiques du document et la vérification que le document est correctement formaté tout en suivant des normes ou des règles spécifiques. L'analyse est principalement utilisée pour extraire des données de pages Web ou pour manipuler la structure des pages Web avant de les afficher aux utilisateurs.

Go fournit des packages pour travailler avec des documents, y compris les formats HTML et XML couramment utilisés dans les pages Web. Le html Le package fournit des fonctions de tokenisation et d'analyse HTML.

Le paquet HTML

Le html Le package fournit un tokenizer et un analyseur compatible HTML5 pour analyser et manipuler des documents HTML, parcourir l'arborescence d'analyse et manipuler la structure arborescente. Le

instagram viewer
html package est un package intégré de la bibliothèque standard de Go.

L'une des principales caractéristiques de la html le paquet est le Analyser fonction qui peut analyser des documents HTML et renvoyer le nœud racine de l'arborescence d'analyse, à partir de laquelle vous pouvez utiliser des fonctions telles que Premier enfant et NextSibling pour naviguer dans l'arborescence et extraire des informations du document. Le package fournit également le ParseFragment fonction pour analyser des fragments de documents HTML.

Le Chaîne d'échappement la fonction est pratique pour échapper les caractères spéciaux dans les chaînes pour une inclusion plus sûre dans HTML; vous pouvez utiliser cette fonction pour empêcher script intersite (XSS) attaques en convertissant des caractères spéciaux en leurs entités HTML correspondantes.

Pour commencer avec le html package, vous pouvez importer le package dans vos fichiers de projet Go.

importer"golang.org/x/net/html"

Le html package ne fournit aucune fonction pour générer du HTML. Au lieu de cela, vous pouvez utiliser le package html/template, qui offre un ensemble de fonctions pour générer des modèles HTML. Le html/modèle package fournit une fonction modèle. HTMLÉchap pour écrire des versions échappées de HTML dans un rédacteur de réponse.

Le html/modèle package fait également partie de la bibliothèque standard, et voici comment vous pouvez importer le package.

importer"html/modèle"

Le html package est le package de modèles le plus utilisé dans l'écosystème Go et prend en charge diverses opérations et types de données.

Analyser HTML dans Go

Le Analyser fonction de la html package aide à analyser le texte et les documents HTML. Le Analyser fonction prend dans un io. Lecteur instance car il s'agit d'un premier argument contenant le fichier document et un *html. Nœud instance, qui est le nœud racine du document HTML

Voici comment vous pouvez utiliser le Analyser fonction pour analyser une page Web et renvoyer toutes les URL de la page Web.

importer (
"fmt"
"golang.org/x/net/html"
"net/http"
)

fonctionprincipal() {
// Envoi d'une requête HTTP GET à la page Web example.com
resp, euh := http. Obtenir(" https://www.example.com")
si erreur != néant {
fmt. Imprimerln("Erreur:", euh)
retour
}
reporter rép. Corps. Fermer()

// Utilisez le package html pour analyser le corps de la réponse à partir de la requête
doc, euh := html. Parser (resp. Corps)
si erreur != néant {
fmt. Imprimerln("Erreur:", euh)
retour
}


// Rechercher et imprimer tous les liens sur la page Web
var liens []chaîne
var lien fonction(*html. Nœud)
lien = fonction(n *html. Nœud) {
si n.m. Tapez == html. ElementNode && n. Données == "un" {
pour _, un := gamme n.m. Attr {
si un. Clé == "href" {
// ajoute une nouvelle entrée de lien lorsque l'attribut correspond
liens = ajouter(liens, a. Val)
}
}
}

// parcourt le HTML de la page Web à partir du premier nœud enfant
pour c := n. Premier enfant; c != néant; c = c. SuivantFrère {
lien (c)
}
}
lien (doc)

// boucle à travers la tranche de liens
pour _, l := gamme liens {
fmt. Imprimerln("Lien:", l)
}
}

Le principal La fonction envoie une requête HTTP GET au site Web avec la Obtenir fonction de la http package et récupère le corps de la réponse de la page. Le Analyser fonction de la html package analyse le corps de la réponse et renvoie le document HTML.

Le liens La variable est la tranche de chaînes qui contiendra les URL de la page Web. Le lien la fonction prend dans la référence du pointeur à la Nœud méthode pour la html paquet, et le Clé La méthode de l'instance d'attribut du nœud renvoie les données contenues dans un attribut spécifié (dans ce cas, href). La fonction parcourt le document avec le NextSibling méthode de la Premier enfant node pour imprimer chaque URL sur la page Web. Enfin, la boucle for imprime toutes les URL de la liens tranche.

Voici le résultat de l'opération.

Générer du HTML en Go

Le html/modèle Le package fournit un ensemble de fonctions pour l'analyse et l'exécution sûres et efficaces des modèles HTML. L'emballage est conçu pour être utilisé conjointement avec le html package, qui fournit des fonctions pour analyser et manipuler HTML.

Vous pouvez générer du code HTML pour le rendu côté serveur avec le html/modèle emballer. La génération de code HTML est pratique pour de nombreux cas d'utilisation tels que l'envoi d'e-mails, le rendu frontal côté serveur et bien d'autres. Vous pouvez utiliser des types de données Go intégrés tels que des cartes et des structures pour interagir et manipuler le code HTML de votre page Web.

Vous aurez besoin de comprendre Aller à la syntaxe des modèles HTML pour générer avec succès HTML avec le html/modèle emballer.

importer (
"html/modèle"
"os"
)

taper page web structure {
Titre chaîne
Titre chaîne
Texte chaîne
}

fonctionprincipal() {
// Définir le modèle
tpl := `



{{.Titre}}


{{.Titre}}


{{.Texte}}



`

// Définir les données à utiliser dans le modèle
web := Page Web{
Titre: "Une page d'exemple",
Titre: "Bienvenue sur mon site web!",
Texte: "Ceci est la page d'accueil de mon site Web.",
}

// Crée un nouveau modèle et analyse la chaîne du modèle
t, err := modèle. Nouveau("page web").Parser (tmpl)
si erreur != néant {
panique(se tromper)
}

// Exécute le modèle et écrit le résultat sur stdout
erreur = t. Exécuter (os. Stdout, Web)
si erreur != néant {
panique(se tromper)
}
}

Le tpl La variable contient la chaîne HTML. La chaîne HTML utilise la syntaxe de modèle Go pour définir le titre de la page, un h1 en-tête et un paragraphe de texte. Le page web struct définit les champs de données de la page Web avec la Titre, Titre, et Texte des champs.

Le Analyser méthode de la Nouveau La fonction du package de modèle crée et analyse un nouveau modèle avec la chaîne de modèle. Le Exécuter La fonction de la nouvelle instance de modèle exécute le modèle avec les données de votre instance de structure et renvoie le résultat sur la sortie standard (dans ce cas, elle imprime le résultat sur la console).

Créez des applications Web avec Go

Apprendre à analyser et à générer du HTML avec Go est un pas dans la bonne direction pour créer des applications Web plus sophistiquées avec Go. Vous pouvez utiliser des frameworks comme Gin et Echo et des routeurs comme Gorilla Mux et le routeur Chi pour construire le côté serveur de votre site Web. application.

Ces packages sont construits sur le réseau/http package (le package intégré pour interagir avec HTTP dans Go) et résumer les complexités de la configuration des serveurs et des routeurs dans Go.