Czytelnicy tacy jak ty pomagają wspierać MUO. Kiedy dokonujesz zakupu za pomocą linków na naszej stronie, możemy otrzymać prowizję partnerską. Czytaj więcej.

Parsowanie to analiza i interpretacja struktury dokumentu. Proces analizowania może obejmować wyodrębnianie określonych elementów, atrybutów lub danych z dokumentu i sprawdzanie, czy dokument jest dobrze sformatowany i przestrzega określonych standardów lub zasad. Analiza składniowa służy głównie do wyodrębniania danych ze stron internetowych lub manipulowania strukturą stron internetowych przed wyświetleniem ich użytkownikom.

Go udostępnia pakiety do pracy z dokumentami, w tym formatami HTML i XML, które są powszechnie używane na stronach internetowych. The HTML pakiet udostępnia funkcje do tokenizacji i analizowania kodu HTML.

Pakiet HTML

The HTML pakiet zawiera zgodny z HTML5 tokenizator i parser do analizowania i manipulowania dokumentami HTML, przechodzenia przez drzewo analizy i manipulowania strukturą drzewa. The HTML package to wbudowany pakiet standardowej biblioteki Go.

instagram viewer

Jedną z głównych cech tzw HTML pakiet jest Analizować funkcja, która może analizować dokumenty HTML i zwracać węzeł główny drzewa analizy, z którego można korzystać z funkcji takich jak Pierworodny I NastępnyRodzeństwo aby poruszać się po drzewie i wyodrębniać informacje z dokumentu. Pakiet zapewnia również ParseFragment funkcja do parsowania fragmentów dokumentów HTML.

The EscapeString funkcja jest przydatna do ucieczki znaków specjalnych w łańcuchach w celu bezpieczniejszego włączenia do HTML; możesz użyć tej funkcji, aby zapobiec skrypty między witrynami (XSS) ataki poprzez konwersję znaków specjalnych na odpowiadające im jednostki HTML.

Aby rozpocząć z HTML package, możesz zaimportować pakiet do plików projektu Go.

import„golang.org/x/net/html”

The HTML pakiet nie udostępnia żadnych funkcji do generowania kodu HTML. Zamiast tego można skorzystać z pakietu html/template, który oferuje zestaw funkcji do generowania szablonów HTML. The html/szablon pakiet zapewnia funkcję szablon. HTMLEscape do pisania zmienionych wersji HTML do pisarza odpowiedzi.

The html/szablon package jest również częścią standardowej biblioteki, a oto jak możesz zaimportować pakiet.

import"html/szablon"

The HTML package jest najczęściej używanym pakietem szablonów w ekosystemie Go i obsługuje różne operacje i typy danych.

Parsowanie HTML w Go

The Analizować funkcja HTML pakiet pomaga w analizowaniu tekstu i dokumentów HTML. The Analizować funkcja przyjmuje a ja. Czytelnik instancja, ponieważ jest to pierwszy argument zawierający plik document i *HTML. Węzeł instancji, która jest węzłem głównym dokumentu HTML

Oto jak możesz użyć Analizować funkcja do analizowania strony internetowej i zwracania wszystkich adresów URL na stronie internetowej.

import (
"fmt"
„golang.org/x/net/html”
„sieć/http”
)

funkcjagłówny() {
// Wyślij żądanie HTTP GET do strony internetowej example.com
odpowiednio, błąd := http. Dostawać(" https://www.example.com")
Jeśli błąd!= zero {
fmt. println("Błąd:", błąd)
powrót
}
odraczać odp. Ciało. Zamknąć()

// Użyj pakietu html, aby przeanalizować treść odpowiedzi z żądania
dokument, błąd:= html. analizować (odp. Ciało)
Jeśli błąd!= zero {
fmt. println("Błąd:", błąd)
powrót
}


// Znajdź i wydrukuj wszystkie linki na stronie internetowej
rozm linki []strunowy
rozm połączyć funkcja(*html. Węzeł)
łącze = funkcja(n *html. Węzeł) {
Jeśli N. Wpisz == html. ElementNode && n. Dane == "A" {
Do _, a := zakres N. atr {
Jeśli A. Klucz == „href” {
// dodaje nowy wpis łącza, gdy atrybut pasuje
linki = dodać(linki, A. Val)
}
}
}

// przechodzi przez kod HTML strony internetowej od pierwszego węzła podrzędnego
Do c := n. Pierworodny; c!= zero; do = do. DalejRodzeństwo {
łącze (c)
}
}
łącze (dokument)

// przechodzi przez wycinek linków
Do _, l := zakres linki {
fmt. println("Połączyć:", ja)
}
}

The główny funkcja wysyła żądanie HTTP GET do strony internetowej z rozszerzeniem Dostawać funkcja http package i pobiera treść odpowiedzi strony. The Analizować funkcja HTML package analizuje treść odpowiedzi i zwraca dokument HTML.

The spinki do mankietów zmienna to wycinek ciągów, który będzie zawierał adresy URL ze strony internetowej. The połączyć funkcja przyjmuje odwołanie do wskaźnika do Węzeł metoda dla HTML pakiet i Klucz metoda instancji atrybutu z węzła zwraca dane zawarte w określonym atrybucie (w tym przypadku href). Funkcja przechodzi przez dokument za pomocą NastępnyRodzeństwo metoda z Pierworodny node, aby wydrukować każdy adres URL na stronie internetowej. Na koniec pętla for wypisuje wszystkie adresy URL z pliku spinki do mankietów plasterek.

Oto wynik operacji.

Generowanie HTML w Go

The html/szablon Pakiet zawiera zestaw funkcji do bezpiecznego i wydajnego analizowania i wykonywania szablonów HTML. Pakiet jest przeznaczony do użytku w połączeniu z HTML pakiet, który zapewnia funkcje do analizowania i manipulowania kodem HTML.

Możesz wygenerować HTML do renderowania po stronie serwera za pomocą html/szablon pakiet. Generowanie kodu HTML jest przydatne w wielu przypadkach, takich jak wysyłanie wiadomości e-mail, renderowanie frontendu po stronie serwera i wiele innych. Możesz używać wbudowanych typów danych Go, takich jak mapy i struktury, do interakcji i manipulowania kodem HTML swojej strony internetowej.

Musisz zrozumieć Przejdź do składni szablonów HTML pomyślnie wygenerować kod HTML za pomocą html/szablon pakiet.

import (
"html/szablon"
„os”
)

typ Strona internetowa struktura {
Tytuł strunowy
Nagłówek strunowy
Tekst strunowy
}

funkcjagłówny() {
// Zdefiniuj szablon
tmpl := `



{{.Tytuł}}


{{.Nagłówek}}


{{.Tekst}}



`

// Zdefiniuj dane, które mają być użyte w szablonie
web := strona internetowa{
Tytuł: „Przykładowa strona”,
Nagłówek: "Witam na mojej stronie internetowej!",
Tekst: „To jest strona główna mojej witryny internetowej”.,
}

// Utwórz nowy szablon i przeanalizuj ciąg szablonu
t, błąd := szablon. Nowy("Strona internetowa".Analizuj (tmpl)
Jeśli błąd!= zero {
panika(błądzić)
}

// Wykonaj szablon i zapisz wynik na stdout
błąd = t. wykonać (os. standardowe wyjście, sieć)
Jeśli błąd!= zero {
panika(błądzić)
}
}

The tmpl zmienna przechowuje ciąg HTML. Ciąg HTML używa składni szablonów Go do zdefiniowania tytułu strony, an h1 nagłówek i akapit tekstu. The Strona internetowa struct definiuje pola danych dla strony internetowej z rozszerzeniem Tytuł, Nagłówek, I Tekst pola.

The Analizować metoda tzw Nowy Funkcja pakietu szablonów tworzy i analizuje nowy szablon z ciągiem szablonów. The Wykonać funkcja nowej instancji szablonu wykonuje szablon z danymi z Twojej instancji struct i zwraca wynik na standardowe wyjście (w tym przypadku wypisuje wynik do konsoli).

Twórz aplikacje internetowe za pomocą Go

Nauka analizowania i generowania kodu HTML w Go to krok we właściwym kierunku w kierunku tworzenia bardziej zaawansowanych aplikacji internetowych z Go. Możesz użyć frameworków, takich jak Gin i Echo, oraz routerów, takich jak Gorilla Mux i Chi Router, aby zbudować serwerową stronę swojej sieci aplikacja.

Te pakiety są zbudowane na sieć/http package (wbudowany pakiet do interakcji z HTTP w Go) i streścić złożoność konfigurowania serwerów i routerów w Go.