Razčlenjevanje je analiza in interpretacija strukture dokumenta. Postopek razčlenjevanja lahko vključuje ekstrahiranje določenih elementov, atributov ali podatkov iz dokumenta in preverjanje, ali je dokument dobro oblikovan ob upoštevanju posebnih standardov ali pravil. Razčlenjevanje se v glavnem uporablja za pridobivanje podatkov s spletnih strani ali manipulacijo strukture spletnih strani, preden jih prikažete uporabnikom.
Go ponuja pakete za delo z dokumenti, vključno s formatoma HTML in XML, ki se pogosto uporabljata na spletnih straneh. The html paket ponuja funkcije za tokenizacijo in razčlenjevanje HTML.
Paket HTML
The html ponuja tokenizer in razčlenjevalnik, ki je združljiv s HTML5, za razčlenjevanje in upravljanje dokumentov HTML, prečkanje drevesa razčlenjevanja in upravljanje drevesne strukture. The html paket je vgrajen paket standardne knjižnice Go.
Ena od glavnih značilnosti html paket je Razčleni funkcijo, ki lahko razčleni dokumente HTML in vrne korensko vozlišče drevesa za razčlenjevanje, od koder lahko uporabite funkcije, kot je FirstChild in NextSibling za krmarjenje po drevesu in pridobivanje informacij iz dokumenta. Paket vsebuje tudi ParseFragment funkcija za razčlenjevanje fragmentov dokumentov HTML.
The EscapeString funkcija je priročna za ubežanje posebnih znakov v nizih za varnejšo vključitev v HTML; to funkcijo lahko uporabite za preprečevanje skriptno izvajanje med spletnimi mesti (XSS) napade s pretvorbo posebnih znakov v njihove ustrezne entitete HTML.
Za začetek z html paket, lahko paket uvozite v svoje datoteke projekta Go.
uvoz"golang.org/x/net/html"
The html paket ne ponuja nobenih funkcij za generiranje HTML. Namesto tega lahko uporabite paket html/template, ki ponuja nabor funkcij za generiranje predlog HTML. The html/predloga paket zagotavlja funkcijo predlogo. HTMLEscape za pisanje ubežnih različic HTML piscu odgovorov.
The html/predloga paket je tudi del standardne knjižnice in tukaj je opisano, kako lahko uvozite paket.
uvoz"html/predloga"
The html je najbolj priljubljen paket za predloge v ekosistemu Go in podpira različne operacije in vrste podatkov.
Razčlenjevanje HTML v Go
The Razčleni funkcija html paket pomaga pri razčlenjevanju besedila in dokumentov HTML. The Razčleni funkcija zajema an io. Bralec primerek, ker je prvi argument, ki vsebuje dokument datoteke in *html. Vozlišče primerek, ki je korensko vozlišče dokumenta HTML
Tukaj je opisano, kako lahko uporabite Razčleni funkcijo za razčlenitev spletne strani in vrnitev vseh URL-jev na spletni strani.
uvoz (
"fmt"
"golang.org/x/net/html"
"net/http"
)funkglavni() {
// Pošlji zahtevo HTTP GET na spletno stran example.com
resp, napaka := http. Pridobi (" https://www.example.com")
če napaka!= nič {
fmt. Println("Napaka:", napaka)
vrnitev
}
odložiti oz. Telo. Zapri()// Uporabite paket html za razčlenitev telesa odgovora iz zahteve
doc, napaka := html. Razčleni (oz. telo)
če napaka!= nič {
fmt. Println("Napaka:", napaka)
vrnitev
}
// Poiščite in natisnite vse povezave na spletni strani
var povezave []vrvica
var povezava funk(*html. vozlišče)
povezava = funk(n *html. vozlišče) {
če n. Vnesite == html. ElementNode && n. Podatki == "a" {
za _, a := obseg n. Attr {
če a. Ključ == "href" {
// doda nov vnos povezave, ko se atribut ujema
povezave = priložiti(povezave, a. Val)
}
}
}// prečka HTML spletne strani od prvega podrejenega vozlišča
za c := n. FirstChild; c != nič; c = c. NextSibling {
povezava (c)
}
}
povezava (doc)
// kroži skozi rezino povezav
za _, l := obseg povezave {
fmt. Println("Povezava:", l)
}
}
The glavni funkcija pošlje zahtevo HTTP GET spletnemu mestu z Dobiti funkcija http zapakira in pridobi telo odgovora strani. The Razčleni funkcija html paket razčleni telo odgovora in vrne dokument HTML.
The povezave spremenljivka je del nizov, ki bodo vsebovali URL-je s spletne strani. The povezava funkcija prevzame sklic kazalca na Vozlišče metoda za html paket in Ključ metoda primerka atributa iz vozlišča vrne podatke, ki jih vsebuje podani atribut (v tem primeru href). Funkcija prečka dokument z NextSibling metoda iz FirstChild vozlišče za tiskanje vsakega URL-ja na spletni strani. Končno zanka for natisne vse URL-je iz povezave rezina.
Tukaj je rezultat operacije.
Ustvarjanje HTML v Go
The html/predloga paket ponuja nabor funkcij za varno in učinkovito razčlenjevanje in izvajanje predlog HTML. Paket je zasnovan za uporabo v povezavi z html paket, ki nudi funkcije za razčlenjevanje in obdelavo HTML.
HTML za upodabljanje na strani strežnika lahko ustvarite z html/predloga paket. Ustvarjanje HTML-ja je priročno za številne primere uporabe, kot je pošiljanje e-pošte, upodabljanje vmesnika na strani strežnika in še veliko več. Za interakcijo in manipulacijo HTML-ja vaše spletne strani lahko uporabite vgrajene vrste podatkov Go, kot so zemljevidi in strukture.
Morali boste razumeti Sintaksa predlog HTML Go da uspešno ustvarite HTML z html/predloga paket.
uvoz (
"html/predloga"
"os"
)vrsta Spletna stran struct {
Naslov vrvica
Naslov vrvica
Besedilo vrvica
}funkglavni() {
// Določite predlogo
tmpl := `{{.Naslov}} {{.Naslov}}
{{.Besedilo}}
`// Določite podatke, ki bodo uporabljeni v predlogi
splet := spletna stran{
Naslov: "Primer strani",
Naslov: "Dobrodošli na moji spletni strani!",
Besedilo: "To je domača stran mojega spletnega mesta.",
}// Ustvarite novo predlogo in razčlenite niz predloge
t, napaka := predloga. novo("Spletna stran").Razčleni (tmpl)
če napaka!= nič {
panika(napaka)
}
// Izvedi predlogo in zapiši rezultat v stdout
napaka = t. Izvedi (os. Stdout, splet )
če napaka!= nič {
panika(napaka)
}
}
The tmpl spremenljivka vsebuje niz HTML. Niz HTML uporablja sintakso predloge Go za definiranje naslova strani, an h1 glavo in odstavek besedila. The Spletna stran struct definira podatkovna polja za spletno stran z Naslov, Naslov, in Besedilo polja.
The Razčleni metoda Novo funkcija paketa predloge ustvari in razčleni novo predlogo z nizom predloge. The Izvedi funkcija novega primerka predloge izvede predlogo s podatki iz vašega primerka strukture in vrne rezultat v standardni izhod (v tem primeru natisne rezultat na konzolo).
Izdelajte spletne aplikacije z Go
Učenje o razčlenjevanju in ustvarjanju HTML-ja z Go je korak v pravo smer k izdelavi bolj izpopolnjenih spletnih aplikacij z Go. Uporabite lahko ogrodja, kot sta Gin in Echo, in usmerjevalnike, kot sta Gorilla Mux in Chi Router, da zgradite strežniško stran svojega spleta. aplikacija.
Ti paketi so zgrajeni na net/http paket (vgrajeni paket za interakcijo s HTTP v Go) in povzetek zapletenosti nastavitve strežnikov in usmerjevalnikov v Go.