Teiesugused lugejad aitavad MUO-d toetada. Kui teete ostu meie saidil olevate linkide abil, võime teenida sidusettevõtte komisjonitasu. Loe rohkem.

Parsimine on dokumendi struktuuri analüüsimine ja tõlgendamine. Sõelumisprotsess võib hõlmata dokumendist konkreetsete elementide, atribuutide või andmete eraldamist ja kindlaid standardeid või reegleid järgides kontrollimist, kas dokument on hästi vormindatud. Parsimist kasutatakse peamiselt veebilehtedelt andmete eraldamiseks või veebilehtede struktuuriga manipuleerimiseks enne nende kuvamist kasutajatele.

Go pakub dokumentidega töötamiseks pakette, sealhulgas veebilehtedel levinud HTML- ja XML-vorminguid. The html pakett pakub funktsioone HTML-i märgistamiseks ja parsimiseks.

HTML pakett

The html pakett pakub HTML5-ga ühilduvat tokenisaatorit ja parserit HTML-dokumentide sõelumiseks ja manipuleerimiseks, sõelumispuu läbimiseks ja puustruktuuriga manipuleerimiseks. The html pakett on Go standardteegi sisseehitatud pakett.

Üks peamisi omadusi html

pakett on Parse funktsioon, mis suudab sõeluda HTML-dokumente ja tagastada sõelumispuu juursõlme, kust saate kasutada selliseid funktsioone nagu Esimene Laps ja Järgmine õde puus navigeerimiseks ja dokumendist teabe eraldamiseks. Pakett sisaldab ka ParseFragment funktsioon HTML-dokumentide fragmentide sõelumiseks.

The EscapeString funktsioon on mugav HTML-i turvalisemaks lisamiseks stringides erimärkidest põgenemiseks; saate seda funktsiooni kasutada ennetamiseks saidiülene skriptimine (XSS) rünnakud, teisendades erimärgid vastavateks HTML-üksusteks.

Et alustada html paketti, saate paketi importida oma Go projektifailidesse.

importida"golang.org/x/net/html"

The html pakett ei paku HTML-i genereerimiseks ühtegi funktsiooni. Selle asemel võite kasutada paketti html/template, mis pakub HTML-mallide genereerimiseks funktsioonide komplekti. The html/mall pakett pakub funktsiooni malli. HTMLEscape HTML-i põgenetud versioonide kirjutamiseks vastuse kirjutajale.

The html/mall pakett on samuti osa standardteegist ja paketi importimiseks tehke järgmist.

importida"html/mall"

The html pakett on Go ökosüsteemis enimkasutatav mallipakett, mis toetab erinevaid toiminguid ja andmetüüpe.

HTML-i sõelumine Go's

The Parse funktsioon html pakett aitab HTML-teksti ja dokumentide sõelumisel. The Parse funktsioon võtab sisse an io. Lugeja eksemplar, kuna see on esimene argument, mis sisaldab failidokumenti ja *html. Sõlm eksemplar, mis on HTML-dokumendi juursõlm

Siin on, kuidas saate kasutada Parse funktsiooni veebilehe sõelumiseks ja kõigi veebilehel olevate URL-ide tagastamiseks.

importida (
"fmt"
"golang.org/x/net/html"
"net/http"
)

funcpeamine() {
// Saatke HTTP GET-i päring veebilehele example.com
resp, eksitus := http. Hangi (" https://www.example.com")
kui eks!= null {
fmt. Println("Viga:", eksitus)
tagasi
}
edasi lükata resp. Keha. Sulge()

// Kasutage päringu vastuse keha sõelumiseks html-paketti
doc, err := html. Parse (resp. keha)
kui eks!= null {
fmt. Println("Viga:", eksitus)
tagasi
}


// Otsige ja printige kõik veebilehe lingid
var lingid []string
var link func(*html. Sõlm)
link = func(n *html. Sõlm) {
kui n. Sisestage == html. ElementNode && n. Andmed == "a" {
jaoks _, a := ulatus n. Attr {
kui a. Võti == "href" {
// lisab uue lingikirje, kui atribuut sobib
lingid = lisama(lingid, a. Val)
}
}
}

// läbib veebilehe HTML-i esimesest alamsõlmest
jaoks c := n. FirstChild; c != null; c = c. Järgmine õde {
link (c)
}
}
link (doc)

// silmused läbi linkide lõigu
jaoks _, l := ulatus lingid {
fmt. Println("Link:", l)
}
}

The peamine funktsioon saadab veebisaidile HTTP GET päringu koos Hangi funktsioon http paketti ja hangib lehe vastuse keha. The Parse funktsioon html pakett parsib vastuse keha ja tagastab HTML-dokumendi.

The lingid muutuja on stringide osa, mis hoiab veebilehe URL-e. The link funktsioon võtab kursori viite Sõlm meetod html pakett ja Võti sõlme atribuudi eksemplari meetod tagastab määratud atribuudis sisalduvad andmed (antud juhul href). Funktsioon läbib dokumendi koos Järgmine õde meetodist Esimene Laps node, et printida kõik veebilehe URL-id. Lõpuks prindib for-silmus kõik URL-id domeenist lingid viil.

Siin on operatsiooni tulemus.

HTML-i loomine Go's

The html/mall pakett pakub funktsioonide komplekti HTML-mallide turvaliseks ja tõhusaks sõelumiseks ja täitmiseks. Pakend on mõeldud kasutamiseks koos html pakett, mis pakub funktsioone HTML-i sõelumiseks ja manipuleerimiseks.

Saate luua HTML-i serveripoolseks renderdamiseks rakendusega html/mall pakett. HTML-i genereerimine on mugav paljudel juhtudel, nagu meilide saatmine, serveripoolne esiserveri renderdamine ja palju muud. Saate kasutada sisseehitatud Go andmetüüpe, nagu kaardid ja struktuurid, et suhelda ja oma veebilehe HTML-iga manipuleerida.

Peate aru saama Mine HTML-i mallide süntaksisse HTML-i edukaks genereerimiseks html/mall pakett.

importida (
"html/mall"
"os"
)

tüüp veebileht struktuur {
Pealkiri string
Pealkiri string
Tekst string
}

funcpeamine() {
// Määratlege mall
tmpl := `



{{.Title}}


{{.Pealkiri}}


{{.Tekst}}



`

// Määrake mallis kasutatavad andmed
veeb := veebileht{
Pealkiri: "Näidisleht",
Pealkiri: "Tere tulemast minu veebisaidile!",
Tekst: "See on minu veebisaidi avaleht.",
}

// Looge uus mall ja sõeluge mallistringi
t, err := mall. Uus("veebileht").Parse (tmpl)
kui eks!= null {
paanika(viga)
}

// Käivitage mall ja kirjutage tulemus stdouti
err = t. Käivita (os. Stdout, veeb)
kui eks!= null {
paanika(viga)
}
}

The tmpl muutuja sisaldab HTML-stringi. HTML-string kasutab Go malli süntaksit, et määratleda lehe pealkiri, an h1 päis ja tekstilõik. The veebileht struct määrab veebilehe andmeväljad Pealkiri, Pealkirija Tekst väljad.

The Parse meetod Uus mallipaketi funktsioon loob ja analüüsib uue malli koos mallistringiga. The Käivitage Uue malli eksemplari funktsioon käivitab malli teie struct eksemplari andmetega ja tagastab tulemuse standardväljundisse (sel juhul prindib tulemuse konsooli).

Looge veebirakendusi Go'ga

Go-ga HTML-i sõelumise ja genereerimise õppimine on üks samm õiges suunas keerukamate veebirakenduste loomise suunas koos Go-ga. Saate oma veebi serveri poole loomiseks kasutada selliseid raamistikke nagu Gin ja Echo ning ruutereid nagu Gorilla Mux ja Chi Router rakendus.

Need paketid on üles ehitatud net/http pakett (sisseehitatud pakett HTTP-ga suhtlemiseks Go-s) ja tehke kokkuvõte Go-s serverite ja ruuterite seadistamise keerukusest.