Lectores como tú ayudan a apoyar a MUO. Cuando realiza una compra utilizando enlaces en nuestro sitio, podemos ganar una comisión de afiliado. Leer más.

Analizar es analizar e interpretar la estructura de un documento. El proceso de análisis puede incluir la extracción de elementos, atributos o datos específicos del documento y la verificación de que el documento está bien formateado mientras sigue normas o reglas específicas. El análisis se utiliza principalmente para extraer datos de páginas web o manipular la estructura de las páginas web antes de mostrárselas a los usuarios.

Go proporciona paquetes para trabajar con documentos, incluidos los formatos HTML y XML que se utilizan comúnmente en las páginas web. El html El paquete proporciona funciones para tokenizar y analizar HTML.

El paquete HTML

El html proporciona un analizador y tokenizador compatible con HTML5 para analizar y manipular documentos HTML, atravesar el árbol de análisis y manipular la estructura del árbol. El html package es un paquete integrado de la biblioteca estándar de Go.

instagram viewer

Una de las principales características de la html el paquete es el Analizar gramaticalmente función que puede analizar documentos HTML y devolver el nodo raíz del árbol de análisis, desde donde puede usar funciones como el Primer hijo y Proximo hermano para navegar por el árbol y extraer información del documento. El paquete también proporciona la ParseFragment función para analizar fragmentos de documentos HTML.

El cadena de escape la función es útil para escapar caracteres especiales en cadenas para una inclusión más segura en HTML; puede utilizar esta función para evitar secuencias de comandos entre sitios (XSS) ataques mediante la conversión de caracteres especiales a sus correspondientes entidades HTML.

Para empezar con el html paquete, puede importar el paquete a sus archivos de proyecto de Go.

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

El html El paquete no proporciona ninguna función para generar HTML. En su lugar, puede utilizar el paquete html/template, que ofrece un conjunto de funciones para generar plantillas HTML. El html/plantilla paquete proporciona una función plantilla. HTMLEscape para escribir versiones escapadas de HTML en un escritor de respuestas.

El html/plantilla El paquete también es parte de la biblioteca estándar, y así es como puede importar el paquete.

importar"html/plantilla"

El html package es el paquete de plantillas más utilizado en el ecosistema Go y admite varias operaciones y tipos de datos.

Analizando HTML en Go

El Analizar gramaticalmente función de la html El paquete ayuda a analizar texto y documentos HTML. El Analizar gramaticalmente función toma en un yo. Lector instancia ya que es un primer argumento que contiene el documento de archivo y un *html Nodo instancia, que es el nodo raíz del documento HTML

Así es como puede usar el Analizar gramaticalmente función para analizar una página web y devolver todas las URL en la página web.

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

funciónprincipal() {
// Enviar una solicitud HTTP GET a la página web example.com
resp, err := http. Conseguir(" https://www.example.com")
si error! = nulo {
fmt. imprimir("Error:", errar)
devolver
}
aplazar resp. Cuerpo. Cerca()

// Usar el paquete html para analizar el cuerpo de respuesta de la solicitud
doc, error: = html. analizar (resp. Cuerpo)
si error! = nulo {
fmt. imprimir("Error:", errar)
devolver
}


// Buscar e imprimir todos los enlaces en la página web
variable Enlaces []cadena
variable enlace función(*html. Nodo)
enlace = función(n*html. Nodo) {
si norte. Escriba == html. NodoElemento && n. Datos == "a" {
para _, un := rango norte. atributo {
si a. Clave == "href" {
// agrega una nueva entrada de enlace cuando el atributo coincide
enlaces = adjuntar(enlaces, a. Vale)
}
}
}

// atraviesa el HTML de la página web desde el primer nodo secundario
para c := n. Primer hijo; c!= nulo; c = c. Proximo hermano {
enlace (c)
}
}
enlace (doc)

// recorre el segmento de enlaces
para _, yo := rango Enlaces {
fmt. imprimir("Enlace:", l)
}
}

El principal función envía una solicitud HTTP GET al sitio web con el Conseguir función de la http paquete y recupera el cuerpo de respuesta de la página. El Analizar gramaticalmente función de la html El paquete analiza el cuerpo de la respuesta y devuelve el documento HTML.

El Enlaces La variable es la porción de cadenas que contendrá las URL de la página web. El enlace La función toma la referencia del puntero a la Nodo método para el html paquete, y el Llave El método de la instancia de atributo del nodo devuelve datos contenidos en un atributo especificado (en este caso, href). La función recorre el documento con el Proximo hermano método de la Primer hijo nodo para imprimir cada URL en la página web. Finalmente, el bucle for imprime todas las URL del Enlaces rebanada.

Aquí está el resultado de la operación.

Generando HTML en Go

El html/plantilla El paquete proporciona un conjunto de funciones para el análisis y la ejecución seguros y eficientes de plantillas HTML. El paquete está diseñado para usarse junto con el html paquete, que proporciona funciones para analizar y manipular HTML.

Puede generar HTML para la representación del lado del servidor con el html/plantilla paquete. La generación de HTML es útil para muchos casos de uso, como el envío de correos electrónicos, la representación de frontend del lado del servidor y muchos más. Puede utilizar tipos de datos integrados de Go, como mapas y estructuras, para interactuar y manipular el HTML de su página web.

tendrás que entender Ir a la sintaxis de plantillas HTML para generar correctamente HTML con el html/plantilla paquete.

importar (
"html/plantilla"
"os"
)

tipo Página web estructura {
Título cadena
Título cadena
Texto cadena
}

funciónprincipal() {
// Definir la plantilla
tmpl := `



{{.Título}}


{{.Título}}


{{.Texto}}



`

// Definir los datos a utilizar en la plantilla
web := página web{
Título: "Una página de ejemplo",
Título: "¡Bienvenidos a mi sitio web!",
Texto: "Esta es la página de inicio de mi sitio web".,
}

// Crea una nueva plantilla y analiza la cadena de la plantilla
t, err := plantilla. Nuevo("Página web").Analizar (tmpl)
si error! = nulo {
pánico(errar)
}

// Ejecuta la plantilla y escribe el resultado en stdout
error = t. Ejecutar (s. Salida estándar, web)
si error! = nulo {
pánico(errar)
}
}

El tmpl variable contiene la cadena HTML. La cadena HTML utiliza la sintaxis de plantilla de Go para definir el título de la página, un h1 encabezado y un párrafo de texto. El Página web struct define los campos de datos para la página web con el Título, Título, y Texto campos.

El Analizar gramaticalmente metodo de la Nuevo La función del paquete de plantilla crea y analiza una nueva plantilla con la cadena de plantilla. El Ejecutar La función de la nueva instancia de plantilla ejecuta la plantilla con los datos de su instancia de estructura y devuelve el resultado a la salida estándar (en este caso, imprime el resultado en la consola).

Cree aplicaciones web con Go

Aprender a analizar y generar HTML con Go es un paso en la dirección correcta para crear aplicaciones web más sofisticadas. con ir. Puede usar marcos como Gin y Echo y enrutadores como Gorilla Mux y Chi Router para construir el lado del servidor de su web solicitud.

Estos paquetes se basan en el red/http package (el paquete integrado para interactuar con HTTP en Go) y abstraer las complejidades de configurar servidores y enrutadores en Go.