Čitatelia ako vy pomáhajú podporovať MUO. Keď uskutočníte nákup pomocou odkazov na našej stránke, môžeme získať pridruženú províziu. Čítaj viac.

Parsing je analýza a interpretácia štruktúry dokumentu. Proces analýzy môže zahŕňať extrakciu špecifických prvkov, atribútov alebo údajov z dokumentu a overenie, či je dokument správne naformátovaný pri dodržaní špecifických noriem alebo pravidiel. Analýza sa používa hlavne na extrahovanie údajov z webových stránok alebo manipuláciu so štruktúrou webových stránok pred ich zobrazením používateľom.

Go poskytuje balíky na prácu s dokumentmi vrátane formátov HTML a XML, ktoré sa bežne používajú na webových stránkach. The html balík poskytuje funkcie na tokenizáciu a analýzu HTML.

Balík HTML

The html balík poskytuje tokenizér a syntaktický analyzátor vyhovujúci HTML5 na analýzu a manipuláciu s dokumentmi HTML, prechádzanie stromom analýzy a manipuláciu so stromovou štruktúrou. The html package je vstavaný balík štandardnej knižnice Go.

Jednou z hlavných čŕt

instagram viewer
html balík je Parse funkcia, ktorá dokáže analyzovať dokumenty HTML a vrátiť koreňový uzol stromu analýzy, odkiaľ môžete používať funkcie ako napr FirstChild a ĎalšíSúrodenec na navigáciu v strome a extrahovanie informácií z dokumentu. Balenie tiež poskytuje ParseFragment funkcia na analýzu fragmentov HTML dokumentov.

The EscapeString funkcia je užitočná na escapovanie špeciálnych znakov v reťazcoch pre bezpečnejšie zahrnutie do HTML; pomocou tejto funkcie môžete zabrániť skriptovanie medzi stránkami (XSS) útoky konverziou špeciálnych znakov na ich zodpovedajúce HTML entity.

Ak chcete začať s html balík môžete importovať do súborov projektu Go.

importovať"golang.org/x/net/html"

The html balík neposkytuje žiadne funkcie na generovanie HTML. Namiesto toho môžete použiť balík html/template, ktorý ponúka sadu funkcií na generovanie HTML šablón. The html/šablóna balík poskytuje funkciu šablóna. HTMLEscape na zapisovanie uniknutých verzií HTML do zapisovača odpovedí.

The html/šablóna Balíček je tiež súčasťou štandardnej knižnice a takto ho môžete importovať.

importovať"html/šablóna"

The html package je najpopulárnejší balík šablón v ekosystéme Go a podporuje rôzne operácie a typy údajov.

Analýza kódu HTML v aplikácii Go

The Parse funkciu html balík pomáha s analýzou HTML textu a dokumentov. The Parse funkcia zaberá an io. Čitateľ inštanciu, pretože je to prvý argument obsahujúci dokument súboru a *html. Uzol inštancia, ktorá je koreňovým uzlom dokumentu HTML

Tu je návod, ako môžete použiť Parse funkcia na analýzu webovej stránky a vrátenie všetkých adries URL na webovej stránke.

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

funcHlavná() {
// Odoslať požiadavku HTTP GET na webovú stránku example.com
resp, chyba := http. Získať(" https://www.example.com")
ak chyba!= nula {
fmt. Println("Chyba:", chyba)
vrátiť
}
odložiť resp. Telo. Zavrieť()

// Na analýzu tela odpovede z požiadavky použite balík html
doc, chyba := html. Analyzovať (resp. telo)
ak chyba!= nula {
fmt. Println("Chyba:", chyba)
vrátiť
}


// Nájdite a vytlačte všetky odkazy na webovej stránke
var odkazy []reťazec
var odkaz func(*html. uzol)
odkaz = func(n *html. uzol) {
ak n. Typ == html. ElementNode && n. Údaje == "a" {
pre _, a := rozsah n. Attr {
ak a. Kľúč == "href" {
// pridá nový odkaz, keď sa atribút zhoduje
odkazy = priložiť(odkazy, a. Val)
}
}
}

// prejde HTML webovej stránky od prvého podriadeného uzla
pre c := n. FirstChild; c != nula; c = c. ĎalšíSúrodenec {
odkaz (c)
}
}
odkaz (doc)

// prechádza cez výsek odkazov
pre _, l := rozsah odkazy {
fmt. Println("Odkaz:", l)
}
}

The Hlavná funkcia odošle požiadavku HTTP GET na webovú stránku s Získajte funkciu http balík a načíta telo odpovede stránky. The Parse funkciu html balík analyzuje telo odpovede a vráti dokument HTML.

The odkazy premenná je časť reťazcov, ktoré budú obsahovať adresy URL z webovej stránky. The odkaz funkcia prevezme odkaz ukazovateľa na Uzol metóda pre html balík a kľúč metóda inštancie atribútu z uzla vracia údaje obsiahnuté v špecifikovanom atribúte (v tomto prípade href). Funkcia prechádza dokumentom s ĎalšíSúrodenec metóda z FirstChild uzol na vytlačenie každej adresy URL na webovej stránke. Nakoniec cyklus for vytlačí všetky adresy URL z odkazy plátok.

Tu je výsledok operácie.

Generovanie HTML v Go

The html/šablóna balík poskytuje sadu funkcií pre bezpečnú a efektívnu analýzu a vykonávanie šablón HTML. Balenie je určené na použitie v spojení s html balík, ktorý poskytuje funkcie na analýzu a manipuláciu s HTML.

HTML pre vykresľovanie na strane servera môžete vygenerovať pomocou html/šablóna balík. Generovanie HTML je užitočné v mnohých prípadoch použitia, ako je odosielanie e-mailov, vykresľovanie frontendu na strane servera a mnoho ďalších. Na interakciu a manipuláciu s kódom HTML vašej webovej stránky môžete použiť vstavané typy údajov Go, ako sú mapy a štruktúry.

budete musieť pochopiť Prejsť na syntax šablón HTML úspešne vygenerovať HTML pomocou html/šablóna balík.

importovať (
"html/šablóna"
"os"
)

typu webstránka štrukturovať {
Názov reťazec
Smerovanie reťazec
Text reťazec
}

funcHlavná() {
// Definujte šablónu
tmpl := `



{{.Titul}}


{{.Nadpis}}


{{.Text}}



`

// Definujte údaje, ktoré sa majú použiť v šablóne
web := webstránka{
názov: "Ukážková stránka",
nadpis: "Vitajte na mojej webovej stránke!",
Text: "Toto je domovská stránka môjho webu.",
}

// Vytvorte novú šablónu a analyzujte reťazec šablóny
t, chyba := šablóna. Nový("webstránka").Parse (tmpl)
ak chyba!= nula {
panika(chyba)
}

// Spustite šablónu a výsledok zapíšte do stdout
chyba = t. Vykonať (os. Stdout, web)
ak chyba!= nula {
panika(chyba)
}
}

The tmpl premenná obsahuje reťazec HTML. Reťazec HTML používa syntax šablóny Go na definovanie názvu stránky, an h1 hlavička a odsek textu. The webstránka struct definuje dátové polia pre webovú stránku s Názov, Smerovanie, a Text poliach.

The Parse metóda Nový funkcia balíka šablón vytvorí a analyzuje novú šablónu s reťazcom šablóny. The Vykonať funkcia novej inštancie šablóny vykoná šablónu s údajmi z vašej inštancie struct a vráti výsledok na štandardný výstup (v tomto prípade vytlačí výsledok do konzoly).

Vytvárajte webové aplikácie so službou Go

Naučiť sa analyzovať a generovať HTML pomocou Go je jeden krok správnym smerom k vytváraniu sofistikovanejších webových aplikácií s Go. Na vytvorenie serverovej strany vášho webu môžete použiť rámce ako Gin a Echo a smerovače ako Gorilla Mux a Chi Router. aplikácie.

Tieto balíky sú postavené na net/http (vstavaný balík na interakciu s HTTP v Go) a abstraktné zložitosti nastavenia serverov a smerovačov v Go.