Leser wie Sie helfen, MUO zu unterstützen. Wenn Sie über Links auf unserer Website einen Kauf tätigen, erhalten wir möglicherweise eine Affiliate-Provision. Weiterlesen.

Beim Parsen wird die Struktur eines Dokuments analysiert und interpretiert. Der Parsing-Prozess kann das Extrahieren bestimmter Elemente, Attribute oder Daten aus dem Dokument und das Verifizieren umfassen, dass das Dokument gut formatiert ist, während bestimmte Standards oder Regeln befolgt werden. Parsing wird hauptsächlich zum Extrahieren von Daten aus Webseiten oder zum Manipulieren der Struktur von Webseiten verwendet, bevor sie Benutzern angezeigt werden.

Go bietet Pakete für die Arbeit mit Dokumenten, einschließlich der HTML- und XML-Formate, die häufig in Webseiten verwendet werden. Der html -Paket bietet Funktionen zum Tokenisieren und Analysieren von HTML.

Das HTML-Paket

Der html -Paket bietet einen HTML5-kompatiblen Tokenizer und Parser zum Analysieren und Bearbeiten von HTML-Dokumenten, zum Durchlaufen des Analysebaums und zum Bearbeiten der Baumstruktur. Der

instagram viewer
html Paket ist ein integriertes Paket der Standardbibliothek von Go.

Eines der Hauptmerkmale der html Paket ist das Analysieren Funktion, die HTML-Dokumente parsen und den Stammknoten des Parsing-Baums zurückgeben kann, von wo aus Sie Funktionen wie die verwenden können Erstes Kind Und Nächstes Geschwister um im Baum zu navigieren und Informationen aus dem Dokument zu extrahieren. Das Paket bietet auch die ParseFragment Funktion zum Parsen von Fragmenten von HTML-Dokumenten.

Der EscapeString Die Funktion ist praktisch, um Sonderzeichen in Zeichenfolgen zu maskieren, um sie sicherer in HTML einzufügen. Sie können diese Funktion verwenden, um dies zu verhindern Cross-Site-Scripting (XSS) Angriffe durch Umwandlung von Sonderzeichen in die entsprechenden HTML-Einheiten.

Um mit dem anzufangen html Paket haben, können Sie das Paket in Ihre Go-Projektdateien importieren.

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

Der html Das Paket stellt keine Funktionen zum Generieren von HTML bereit. Stattdessen können Sie das Paket html/template verwenden, das eine Reihe von Funktionen zum Generieren von HTML-Vorlagen bietet. Der html/Vorlage Paket stellt eine Funktion bereit Vorlage. HTMLEscape zum Schreiben von Escape-Versionen von HTML an einen Response Writer.

Der html/Vorlage Paket ist auch Teil der Standardbibliothek, und so können Sie das Paket importieren.

importieren"html/Vorlage"

Der html Das Paket ist das am häufigsten verwendete Templating-Paket im Go-Ökosystem und unterstützt verschiedene Operationen und Datentypen.

HTML-Parsing in Go

Der Analysieren Funktion der html Paket hilft beim Analysieren von HTML-Text und -Dokumenten. Der Analysieren Funktion übernimmt ein io. Leser Instanz, da es sich um ein erstes Argument handelt, das die Datei document und ein *html. Knoten -Instanz, die der Stammknoten des HTML-Dokuments ist

So können Sie die verwenden Analysieren -Funktion, um eine Webseite zu parsen und alle URLs auf der Webseite zurückzugeben.

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

Funkhauptsächlich() {
// Senden Sie eine HTTP GET-Anforderung an die Webseite example.com
bzw, äh := http. Erhalten(" https://www.example.com")
Wenn äh != Null {
fmt. Println("Fehler:", irren)
zurückkehren
}
verschieben bzw. Körper. Schließen()

// Verwenden Sie das HTML-Paket, um den Antworttext der Anfrage zu parsen
doc, äh := html. parsen (bzw. Körper)
Wenn äh != Null {
fmt. Println("Fehler:", irren)
zurückkehren
}


// Finden und drucken Sie alle Links auf der Webseite
Var Links []Schnur
Var Verknüpfung Funk(*html. Knoten)
Link = Funk(n*html. Knoten) {
Wenn N. Geben Sie == html ein. ElementNode && n. Daten == "A" {
für _, ein := Bereich N. Attr {
Wenn A. Schlüssel == "href" {
// Fügt einen neuen Link-Eintrag hinzu, wenn das Attribut übereinstimmt
Links = anhängen(Links, u. Wert)
}
}
}

// durchläuft den HTML-Code der Webseite vom ersten untergeordneten Knoten
für c := n. Erstes Kind; c != Null; c = c. Nächstes Geschwister {
Verbindung (c)
}
}
Link (Dokument)

// durchläuft den Links-Slice
für _, ich := Bereich Links {
fmt. Println("Verknüpfung:", l)
}
}

Der hauptsächlich Funktion sendet eine HTTP-GET-Anforderung an die Website mit der Erhalten Funktion der http -Paket und ruft den Antworttext der Seite ab. Der Analysieren Funktion der html Paket analysiert den Antworttext und gibt das HTML-Dokument zurück.

Der Verknüpfungen Variable ist das Segment von Zeichenfolgen, das die URLs von der Webseite enthält. Der Verknüpfung Die Funktion nimmt den Verweis auf den Zeiger auf Knoten Methode für die html Paket und die Taste -Methode der Attributinstanz des Knotens gibt Daten zurück, die in einem angegebenen Attribut enthalten sind (in diesem Fall href). Die Funktion durchläuft das Dokument mit dem Nächstes Geschwister Methode aus der Erstes Kind Knoten, um jede URL auf der Webseite zu drucken. Schließlich gibt die for-Schleife alle URLs aus der aus Verknüpfungen Scheibe.

Hier ist das Ergebnis der Operation.

HTML-Generierung in Go

Der html/Vorlage -Paket bietet eine Reihe von Funktionen für das sichere und effiziente Parsen und Ausführen von HTML-Vorlagen. Das Paket ist für die Verwendung in Verbindung mit dem konzipiert html Paket, das Funktionen zum Analysieren und Bearbeiten von HTML bereitstellt.

Sie können HTML für das serverseitige Rendern mit generieren html/Vorlage Paket. Das Generieren von HTML ist praktisch für viele Anwendungsfälle wie das Versenden von E-Mails, das serverseitige Frontend-Rendering und vieles mehr. Sie können integrierte Go-Datentypen wie Karten und Strukturen verwenden, um mit dem HTML Ihrer Webseite zu interagieren und es zu manipulieren.

Sie müssen verstehen Go HTML-Template-Syntax um erfolgreich HTML mit dem zu generieren html/Vorlage Paket.

importieren (
"html/Vorlage"
"os"
)

Typ Website Struktur {
Titel Schnur
Überschrift Schnur
Text Schnur
}

Funkhauptsächlich() {
// Definieren Sie die Vorlage
tmpl := `



{{.Titel}}


{{.Überschrift}}


{{.Text}}



`

// Definieren Sie die Daten, die in der Vorlage verwendet werden sollen
web := Webseite{
Titel: "Eine Beispielseite",
Überschrift: "Willkommen auf meiner Website!",
Text: "Dies ist die Startseite meiner Website.",
}

// Erstellen Sie eine neue Vorlage und parsen Sie die Vorlagenzeichenfolge
t, err := Vorlage. Neu("Website").Parse (tmpl)
Wenn äh != Null {
Panik(irren)
}

// Führe das Template aus und schreibe das Ergebnis nach stdout
Fehler = t. Ausführen (o. Stdout, Web )
Wenn äh != Null {
Panik(irren)
}
}

Der tmpl Variable enthält den HTML-String. Die HTML-Zeichenfolge verwendet Go-Vorlagensyntax, um den Seitentitel zu definieren, an h1 Kopfzeile und einen Textabschnitt. Der Website struct definiert die Datenfelder für die Webseite mit der Titel, Überschrift, Und Text Felder.

Der Analysieren Methode der Neu -Funktion des Vorlagenpakets erstellt und parst eine neue Vorlage mit der Vorlagenzeichenfolge. Der Ausführen Die Funktion der neuen Vorlageninstanz führt die Vorlage mit den Daten Ihrer Strukturinstanz aus und gibt das Ergebnis an die Standardausgabe zurück (in diesem Fall gibt sie das Ergebnis an die Konsole aus).

Erstellen Sie Webanwendungen mit Go

Das Erlernen des Parsens und Generierens von HTML mit Go ist ein Schritt in die richtige Richtung, um anspruchsvollere Webanwendungen zu erstellen mit Los. Sie können Frameworks wie Gin und Echo und Router wie Gorilla Mux und den Chi Router verwenden, um die Serverseite Ihres Webs aufzubauen Anwendung.

Diese Pakete bauen auf dem auf net/http Paket (das integrierte Paket für die Interaktion mit HTTP in Go) und abstrahieren Sie die Komplexität der Einrichtung von Servern und Routern in Go.