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
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.