Cititorii ca tine ajută la sprijinirea MUO. Când efectuați o achiziție folosind link-uri de pe site-ul nostru, este posibil să câștigăm un comision de afiliat. Citeşte mai mult.

Analiza înseamnă analiza și interpretarea structurii unui document. Procesul de analizare poate include extragerea anumitor elemente, atribute sau date din document și verificarea faptului că documentul este bine formatat, respectând standarde sau reguli specifice. Analiza este folosită în principal pentru extragerea datelor din pagini web sau pentru manipularea structurii paginilor web înainte de a le afișa utilizatorilor.

Go oferă pachete pentru lucrul cu documente, inclusiv formatele HTML și XML utilizate în mod obișnuit în paginile web. The html pachetul oferă funcții pentru tokenizarea și analizarea HTML.

Pachetul HTML

The html pachetul oferă un tokenizer și un parser compatibil cu HTML5 pentru analizarea și manipularea documentelor HTML, traversarea arborelui de analiză și manipularea structurii arborelui. The html pachetul este un pachet încorporat al bibliotecii standard Go.

instagram viewer

Una dintre principalele caracteristici ale html pachetul este Analiza funcție care poate analiza documente HTML și returna nodul rădăcină al arborelui de analiză, de unde puteți utiliza funcții precum Primul copil și Următorul Frate pentru a naviga în arbore și pentru a extrage informații din document. Pachetul oferă și ParseFragment funcție pentru analizarea fragmentelor de documente HTML.

The EscapeString funcția este utilă pentru evadarea caracterelor speciale din șiruri de caractere pentru o includere mai sigură în HTML; puteți folosi această funcție pentru a preveni cross-site scripting (XSS) atacă prin conversia caracterelor speciale în entitățile lor HTML corespunzătoare.

Pentru a începe cu html pachet, puteți importa pachetul în fișierele de proiect Go.

import„golang.org/x/net/html”

The html pachetul nu oferă nicio funcție pentru generarea HTML. În schimb, puteți utiliza pachetul html/template, care oferă un set de funcții pentru generarea de șabloane HTML. The html/șablon pachetul oferă o funcție șablon. HTMLEscape pentru scrierea versiunilor HTML cu evadare către un scriitor de răspuns.

The html/șablon pachetul face, de asemenea, parte din biblioteca standard și iată cum puteți importa pachetul.

import„html/șablon”

The html pachetul este cel mai popular pachet de șabloane din ecosistemul Go și acceptă diverse operațiuni și tipuri de date.

Analizarea HTML în Go

The Analiza funcția de html pachetul ajută la analizarea textului și documentelor HTML. The Analiza funcția ia într-o io. Cititor instanță deoarece este un prim argument care conține documentul fișierului și un *html. Nodul instanță, care este nodul rădăcină al documentului HTML

Iată cum puteți utiliza Analiza pentru a analiza o pagină web și a returna toate adresele URL de pe pagina web.

import (
"fmt"
„golang.org/x/net/html”
"net/http"
)

funcprincipal() {
// Trimiteți o solicitare HTTP GET către pagina web example.com
resp, greș := http. Obține(" https://www.example.com")
dacă greș!= zero {
fmt. Println("Eroare:", greseala)
întoarcere
}
amâna resp. Corp. Închide()

// Folosiți pachetul html pentru a analiza corpul răspunsului din cerere
doc, err := html. Analiza (resp. Corp)
dacă greș!= zero {
fmt. Println("Eroare:", greseala)
întoarcere
}


// Găsiți și imprimați toate linkurile de pe pagina web
var link-uri []şir
var legătură func(*html. Nodul)
link = func(n *html. Nodul) {
dacă n. Tastați == html. ElementNode && n. Date == "A" {
pentru _, a := gamă n. Attr {
dacă A. Cheie == "href" {
// adaugă o nouă intrare de link când atributul se potrivește
link-uri = adăuga(linkuri, a. Val)
}
}
}

// parcurge HTML-ul paginii web de la primul nod copil
pentru c := n. Primul copil; c != zero; c = c. Următorul frate {
link (c)
}
}
link (doc)

// parcurge secțiunea de linkuri
pentru _, l := gamă link-uri {
fmt. Println("Legătură:", l)
}
}

The principal funcția trimite o solicitare HTTP GET către site-ul web cu obține funcția de http pachet și preia corpul răspunsului paginii. The Analiza funcția de html pachetul analizează corpul răspunsului și returnează documentul HTML.

The link-uri variabila este porțiunea de șiruri care va deține adresele URL de pe pagina web. The legătură funcția preia referința indicatorului la Nodul metoda pentru html pachet, iar Cheie metoda instanței de atribut din nod returnează datele conținute într-un atribut specificat (în acest caz, href). Funcția parcurge documentul cu Următorul Frate metoda din Primul copil nod pentru a imprima fiecare URL de pe pagina web. În cele din urmă, bucla for tipărește toate adresele URL din link-uri felie.

Iată rezultatul operației.

Generarea HTML în Go

The html/șablon pachetul oferă un set de funcții pentru analizarea și executarea sigură și eficientă a șabloanelor HTML. Pachetul este conceput pentru a fi utilizat împreună cu html pachet, care oferă funcții pentru analizarea și manipularea HTML.

Puteți genera HTML pentru randarea pe partea serverului cu html/șablon pachet. Generarea HTML este la îndemână pentru multe cazuri de utilizare, cum ar fi trimiterea de e-mailuri, redarea front-end pe server și multe altele. Puteți utiliza tipuri de date Go încorporate, cum ar fi hărți și structuri, pentru a interacționa și a manipula HTML-ul paginii dvs. web.

Va trebui să înțelegi Go HTML sintaxă șablon pentru a genera cu succes HTML cu html/șablon pachet.

import (
„html/șablon”
"os"
)

tip pagină web struct {
Titlu şir
Titlu şir
Text şir
}

funcprincipal() {
// Definiți șablonul
tmpl := `



{{.Titlu}}


{{.Titul}}


{{.Text}}



`

// Definiți datele care vor fi utilizate în șablon
web := pagina web{
Titlu: „O pagină de exemplu”,
Titlu: „Bine ați venit pe site-ul meu!”,
Text: „Aceasta este pagina de pornire a site-ului meu.”,
}

// Creați un șablon nou și analizați șirul șablonului
t, err := șablon. Nou("pagină web").Parse (tmpl)
dacă greș!= zero {
panică(eroare)
}

// Executați șablonul și scrieți rezultatul în stdout
eroare = t. Execută (os. Stdout, web)
dacă greș!= zero {
panică(eroare)
}
}

The tmpl variabila deține șirul HTML. Șirul HTML utilizează sintaxa șablonului Go pentru a defini titlul paginii, an h1 antet și un paragraf de text. The pagină web struct definește câmpurile de date pentru pagina web cu Titlu, Titlu, și Text câmpuri.

The Analiza metoda de Nou funcția pachetului de șabloane creează și analizează un nou șablon cu șirul de șablon. The A executa funcția noii instanțe șablon execută șablonul cu datele din instanța dvs. struct și returnează rezultatul la ieșirea standard (în acest caz, imprimă rezultatul în consolă).

Creați aplicații web cu Go

A învăța despre analizarea și generarea de HTML cu Go este un pas în direcția corectă spre construirea de aplicații web mai sofisticate cu Go. Puteți folosi cadre precum Gin și Echo și routere precum Gorilla Mux și Chi Router pentru a construi partea de server a web-ului dvs. aplicarea.

Aceste pachete sunt construite pe net/http pachet (pachetul încorporat pentru interacțiunea cu HTTP în Go) și retrageți complexitățile instalării serverelor și routerelor în Go.