Parsēšana ir dokumenta struktūras analīze un interpretācija. Parsēšanas process var ietvert konkrētu elementu, atribūtu vai datu izvilkšanu no dokumenta un pārbaudi, vai dokuments ir pareizi formatēts, vienlaikus ievērojot īpašus standartus vai noteikumus. Parsēšanu galvenokārt izmanto, lai iegūtu datus no tīmekļa lapām vai manipulētu ar tīmekļa lapu struktūru pirms to parādīšanas lietotājiem.
Go nodrošina pakotnes darbam ar dokumentiem, tostarp HTML un XML formātiem, ko plaši izmanto tīmekļa lapās. The html pakotne nodrošina funkcijas HTML marķierēšanai un parsēšanai.
HTML pakotne
The html pakotne nodrošina ar HTML5 saderīgu marķieri un parsētāju, lai parsētu un apstrādātu HTML dokumentus, šķērsotu parsēšanas koku un manipulētu ar koka struktūru. The html pakotne ir iebūvēta Go standarta bibliotēkas pakotne.
Viena no galvenajām iezīmēm html iepakojums ir
Parsēt funkcija, kas var parsēt HTML dokumentus un atgriezt parsēšanas koka saknes mezglu, no kura var izmantot tādas funkcijas kā Pirmais bērns un NākamaisBrālis lai pārvietotos kokā un iegūtu informāciju no dokumenta. Pakete nodrošina arī ParseFragment funkcija HTML dokumentu fragmentu parsēšanai.The EscapeString funkcija ir ērta, lai virknēs izvairītos no īpašām rakstzīmēm, lai drošāk iekļautu HTML; varat izmantot šo funkciju, lai novērstu starpvietņu skriptēšana (XSS) uzbrukumiem, pārvēršot speciālās rakstzīmes par tām atbilstošajām HTML entītijām.
Lai sāktu darbu ar html pakotni, varat importēt pakotni Go projekta failos.
imports"golang.org/x/net/html"
The html pakotne nenodrošina nekādas funkcijas HTML ģenerēšanai. Tā vietā varat izmantot html/veidņu pakotni, kas piedāvā funkciju kopu HTML veidņu ģenerēšanai. The html/veidne pakotne nodrošina funkciju veidne. HTMLEscape lai rakstītu atbildes rakstītājam HTML izplūdes versijas.
The html/veidne pakotne ir arī daļa no standarta bibliotēkas, un šeit ir norādīts, kā jūs varat importēt pakotni.
imports"html/veidne"
The html pakotne ir populārākā veidņu pakotne Go ekosistēmā un atbalsta dažādas darbības un datu tipus.
HTML parsēšana programmā Go
The Parsēt funkcija html pakotne palīdz parsēt HTML tekstu un dokumentus. The Parsēt funkcija uzņem an io. Lasītājs gadījumu, jo tas ir pirmais arguments, kas satur faila dokumentu un *html. Mezgls instance, kas ir HTML dokumenta saknes mezgls
Lūk, kā varat izmantot Parsēt funkcija, lai parsētu tīmekļa lapu un atgrieztu visus tīmekļa lapā esošos URL.
imports (
"fmt"
"golang.org/x/net/html"
"net/http"
)funcgalvenais() {
// Nosūtiet HTTP GET pieprasījumu uz example.com tīmekļa lapu
resp, err := http. Gūt(" https://www.example.com")
ja kļūda! = nulle {
fmt. Println("Kļūda:", kļūda)
atgriezties
}
atlikt resp. Ķermenis. Aizvērt ()// Izmantojiet html pakotni, lai parsētu pieprasījuma atbildes pamattekstu
doc, err := html. Parsēt (resp. korpuss)
ja kļūda! = nulle {
fmt. Println("Kļūda:", kļūda)
atgriezties
}
// Atrodiet un izdrukājiet visas saites tīmekļa lapā
var saites []virkne
var saite func(*html. Mezgls)
saite = func(n *html. Mezgls) {
ja n. Ierakstiet == html. ElementNode && n. Dati == "a" {
priekš _, a := diapazons n. Attr {
ja a. Atslēga == "href" {
// pievieno jaunu saites ierakstu, kad atribūts atbilst
saites = pievienot(saites, a. Val)
}
}
}// šķērso tīmekļa lapas HTML no pirmā pakārtotā mezgla
priekš c := n. FirstChild; c != nulle; c = c. Nākamais brālis {
saite (c)
}
}
saite (doc)
// cilpas caur saišu šķēli
priekš _, l := diapazons saites {
fmt. Println("Saite:", l)
}
}
The galvenais funkcija nosūta HTTP GET pieprasījumu vietnei ar gūt funkcija http pakotni un izgūst lapas atbildes pamattekstu. The Parsēt funkcija html pakotne parsē atbildes pamattekstu un atgriež HTML dokumentu.
The saites mainīgais ir virkņu daļa, kas glabās vietrāžus URL no tīmekļa lapas. The saite funkcija ņem rādītāja atsauci uz Mezgls metode html iepakojums un Atslēga atribūta instances metode no mezgla atgriež datus, kas ietverti norādītajā atribūtā (šajā gadījumā, href). Funkcija šķērso dokumentu ar NākamaisBrālis metode no Pirmais bērns mezglu, lai drukātu katru URL tīmekļa lapā. Visbeidzot, for cilpa drukā visus URL no saites šķēle.
Šeit ir operācijas rezultāts.
HTML ģenerēšana lietotnē Go
The html/veidne pakotne nodrošina funkciju kopumu drošai un efektīvai HTML veidņu parsēšanai un izpildei. Iepakojums ir paredzēts lietošanai kopā ar html pakotne, kas nodrošina HTML parsēšanas un manipulācijas funkcijas.
Varat ģenerēt HTML servera puses renderēšanai, izmantojot html/veidne iepakojums. HTML ģenerēšana ir ērta daudzos lietošanas gadījumos, piemēram, e-pasta sūtīšanai, servera puses frontend renderēšanai un daudzām citām vajadzībām. Jūs varat izmantot iebūvētos Go datu tipus, piemēram, kartes un struktūras, lai mijiedarbotos un manipulētu ar savas tīmekļa lapas HTML.
Jums būs jāsaprot Pārejiet uz HTML veidņu sintakse lai veiksmīgi ģenerētu HTML, izmantojot html/veidne iepakojums.
imports (
"html/veidne"
"os"
)veids tīmekļa lapa struktūra {
Nosaukums virkne
Virsraksts virkne
Teksts virkne
}funcgalvenais() {
// Definējiet veidni
tmpl := `{{.Title}} {{.Virsraksts}}
{{.Teksts}}
`// Definējiet veidnē izmantojamos datus
web := tīmekļa lapa{
Nosaukums: "Piemēra lapa",
Virsraksts: "Laipni lūdzam manā vietnē!",
Teksts: "Šī ir manas vietnes sākumlapa.",
}// Izveidojiet jaunu veidni un parsējiet veidnes virkni
t, err := veidne. Jauns("tīmekļa lapa").Parsēt (tmpl)
ja kļūda! = nulle {
panika(kļūda)
}
// Izpildiet veidni un ierakstiet rezultātu stdout
kļūda = t. Izpildīt (os. Stdout, tīmeklis)
ja kļūda! = nulle {
panika(kļūda)
}
}
The tmpl mainīgais satur HTML virkni. HTML virkne izmanto Go veidnes sintakse, lai definētu lapas nosaukumu, an h1 galvene un teksta rindkopa. The tīmekļa lapa struct definē datu laukus tīmekļa lapai ar Nosaukums, Virsraksts, un Teksts lauki.
The Parsēt metode Jauns veidņu pakotnes funkcija izveido un parsē jaunu veidni ar veidnes virkni. The Izpildīt Jaunās veidnes instances funkcija izpilda veidni ar datiem no jūsu struct instances un atgriež rezultātu standarta izvadē (šajā gadījumā tas izdrukā rezultātu konsolē).
Veidojiet tīmekļa lietojumprogrammas, izmantojot Go
Mācīšanās par HTML parsēšanu un ģenerēšanu, izmantojot Go, ir solis pareizajā virzienā, lai izveidotu sarežģītākas tīmekļa lietojumprogrammas. ar Go. Varat izmantot tādus ietvarus kā Gin un Echo un maršrutētājus, piemēram, Gorilla Mux un Chi Router, lai izveidotu sava tīmekļa servera pusi. pieteikumu.
Šīs paketes ir veidotas uz net/http pakotne (iebūvēta pakotne mijiedarbībai ar HTTP pakalpojumā Go) un abstrahējiet serveru un maršrutētāju iestatīšanas sarežģītību programmā Go.