Az elemzés egy dokumentum szerkezetének elemzése és értelmezése. Az elemzési folyamat magában foglalhatja bizonyos elemek, attribútumok vagy adatok kinyerését a dokumentumból, és annak ellenőrzését, hogy a dokumentum megfelelően formázott-e, miközben betartja az adott szabványokat vagy szabályokat. Az elemzést főként a weboldalak adatainak kinyerésére vagy a weboldalak szerkezetének manipulálására használják, mielőtt megjelenítenék azokat a felhasználók számára.
A Go csomagokat biztosít a dokumentumok kezeléséhez, beleértve a weboldalakon népszerű HTML és XML formátumokat. A html csomag funkciókat biztosít a HTML tokenizálásához és elemzéséhez.
A HTML csomag
A html csomag egy HTML5-kompatibilis tokenizálót és elemzőt biztosít a HTML-dokumentumok elemzéséhez és manipulálásához, az elemzési fa bejárásához és a fastruktúra manipulálásához. A html csomag a Go szabványos könyvtárának beépített csomagja.
Az egyik fő jellemzője a html csomag az Elemzés függvény, amely képes elemezni HTML dokumentumokat, és visszaadni az elemző fa gyökércsomópontját, ahonnan olyan függvényeket használhat, mint a Első gyerek és Következő Testvér a fában való navigáláshoz és információk kinyeréséhez a dokumentumból. A csomag tartalmazza a ParseFragment funkció a HTML dokumentumok töredékeinek elemzéséhez.
A EscapeString A funkció praktikus a karakterláncok speciális karaktereinek elkerülésére a HTML-be való biztonságosabb felvétel érdekében; ezzel a funkcióval megelőzheti webhelyek közötti szkriptelés (XSS) támadások a speciális karakterek megfelelő HTML-entitásokká konvertálásával.
A kezdéshez a html csomagot, importálhatja a csomagot a Go projekt fájljaiba.
import"golang.org/x/net/html"
A html csomag nem biztosít semmilyen funkciót a HTML generálásához. Ehelyett használhatja a html/template csomagot, amely egy sor funkciót kínál a HTML-sablonok előállításához. A html/sablon csomag funkciót biztosít sablon. HTMLEscape a HTML felszabadult verzióinak válaszíróba írásához.
A html/sablon csomag is a szabványos könyvtár része, és így importálhatja a csomagot.
import"html/sablon"
A html csomag a Go ökoszisztéma legnépszerűbb sabloncsomagja, amely különféle műveleteket és adattípusokat támogat.
HTML elemzése a Go-ban
A Elemzés funkciója html csomag segít a HTML szöveg és dokumentumok elemzésében. A Elemzés függvény egy io. Olvasó példány, mivel ez egy első argumentum, amely tartalmazza a fájldokumentumot és egy *html. Csomópont példány, amely a HTML-dokumentum gyökércsomópontja
Íme, hogyan használhatja a Elemzés funkció segítségével elemzi a weboldalt, és visszaadja a weboldal összes URL-jét.
import (
"fmt"
"golang.org/x/net/html"
"net/http"
)funcfő-() {
// HTTP GET kérés küldése az example.com weboldalra
ill, err := http. Kap(" https://www.example.com")
ha hiba! = nulla {
fmt. Println("Hiba:", hiba)
Visszatérés
}
elhalasztja ill. Test. Bezárás()// Használja a html csomagot a válasz törzsének elemzéséhez a kérésből
doc, err := html. Elemzés (ill. Test)
ha hiba! = nulla {
fmt. Println("Hiba:", hiba)
Visszatérés
}
// Az összes hivatkozás megkeresése és kinyomtatása a weboldalon
var linkek []húr
var link func(*html. Csomópont)
link = func(n *html. Csomópont) {
ha n. Írd be: == html. ElementNode && n. Adatok == "a" {
számára _, a := hatótávolság n. Attr {
ha a. Kulcs == "href" {
// új hivatkozás bejegyzést ad hozzá, ha az attribútum egyezik
linkek = mellékel(linkek, a. Val)
}
}
}// bejárja a weboldal HTML-kódját az első gyermekcsomóponttól kezdve
számára c := n. Első gyerek; c != nulla; c = c. Következő Testvér {
link (c)
}
}
link (doc)
// ciklusok a hivatkozások szeletén keresztül
számára _, l := hatótávolság linkek {
fmt. Println("Link:", l)
}
}
A fő- függvény HTTP GET kérést küld a webhelynek a Kap funkciója http csomagot, és lekéri az oldal válasz törzsét. A Elemzés funkciója html csomag elemzi a válasz törzsét, és visszaadja a HTML dokumentumot.
A linkeket változó a karakterláncok szelete, amely a weboldal URL-címeit tartalmazza. A link függvény veszi a mutató hivatkozását a Csomópont módszer a html csomagot, és a Kulcs A csomópont attribútumpéldányának metódusa egy megadott attribútumban található adatokat adja vissza (ebben az esetben, href). A függvény a dokumentumot a Következő Testvér módszer a Első gyerek csomópontot, hogy kinyomtasson minden URL-t a weboldalon. Végül a for ciklus kiírja az összes URL-t a linkeket szelet.
Íme a művelet eredménye.
HTML generálása a Go-ban
A html/sablon csomag egy sor funkciót biztosít a HTML-sablonok biztonságos és hatékony elemzéséhez és végrehajtásához. A csomagot úgy tervezték, hogy a html csomag, amely funkciókat biztosít a HTML elemzéséhez és kezeléséhez.
A szerveroldali megjelenítéshez HTML-t generálhat a html/sablon csomag. A HTML generálása számos felhasználási esetben hasznos, mint például e-mailek küldése, szerveroldali frontend renderelés és még sok más. Használhat beépített Go adattípusokat, például térképeket és struktúrákat a weboldal HTML-kódjának interakciójához és kezeléséhez.
meg kell értened Ugrás a HTML sablonok szintaxisára hogy sikeresen generáljon HTML-t a html/sablon csomag.
import (
"html/sablon"
"os"
)típus honlap struct {
Cím húr
Cím húr
Szöveg húr
}funcfő-() {
// Határozza meg a sablont
tmpl := `{{.Cím}} {{.Cím}}
{{.Szöveg}}
`// Határozza meg a sablonban használandó adatokat
web := weboldal{
Cím: "Egy példaoldal",
Cím: "Üdvözlöm a honlapomon!",
Szöveg: "Ez a honlapom főoldala.",
}// Hozzon létre egy új sablont, és elemezze a sablon karakterláncát
t, err := sablon. Új("honlap").Emlékezés (tmpl)
ha hiba! = nulla {
pánik(téved)
}
// Futtassa a sablont, és írja be az eredményt az stdout-ba
err = t. Végrehajtás (os. Stdout, web)
ha hiba! = nulla {
pánik(téved)
}
}
A tmpl változó tartalmazza a HTML karakterláncot. A HTML karakterlánc a Go sablon szintaxist használja az oldal címének meghatározásához, an h1 fejléc és egy szöveg bekezdése. A honlap A struct a weboldal adatmezőit határozza meg a Cím, Cím, és Szöveg mezőket.
A Elemzés módszere a Új A sabloncsomag függvénye létrehoz és elemzi egy új sablont a sablon karakterláncával. A Végrehajtás Az új sablonpéldány függvénye végrehajtja a sablont a struct-példány adataival, és visszaadja az eredményt a szabványos kimenetre (ebben az esetben kiírja az eredményt a konzolra).
Webes alkalmazások készítése a Go segítségével
A HTML elemzésének és generálásának megismerése a Go segítségével egy lépést jelent a kifinomultabb webalkalmazások készítése felé vezető úton. a Go-val. Használhat olyan keretrendszereket, mint a Gin és Echo, valamint az olyan útválasztókat, mint a Gorilla Mux és a Chi Router a web szerveroldalának felépítéséhez. Alkalmazás.
Ezek a csomagok a net/http csomag (a beépített csomag a HTTP-vel való interakcióhoz a Go-ban), és elvonatkoztathat a kiszolgálók és útválasztók beállításának bonyolultságáról a Go-ban.