Az Önhöz hasonló olvasók támogatják a MUO-t. Amikor a webhelyünkön található linkek használatával vásárol, társult jutalékot kaphatunk. Olvass tovább.

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.

instagram viewer

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.