Golang html 包详解
html
包提供了解析HTML文档的功能。以下是一些主要的函数和类型:
html.Tokenizer
:用于遍历HTML文档的标记。html.NewTokenizer
:创建一个新的Tokenizer
。html.Token
:表示HTML文档中的标记。html.Attribute
:表示HTML标记的属性。html.UnescapeString
:将字符串中的实体引用转换回对应的字符。
示例代码:
package main
import (
"golang.org/x/net/html"
"os"
"fmt"
)
func main() {
resp, err := http.Get("http://example.com")
if err != nil {
panic(err)
}
defer resp.Body.Close()
doc, err := html.Parse(resp.Body)
if err != nil {
panic(err)
}
var f func(*html.Node)
f = func(n *html.Node) {
if n.Type == html.ElementNode && n.Data == "title" {
for c := n.FirstChild; c != nil; c = c.NextSibling {
fmt.Printf("%s\n", c.Data)
}
}
for c := n.FirstChild; c != nil; c = c.NextSibling {
f(c)
}
}
f(doc)
}
这段代码使用html.Parse
解析从网站获取的HTML文档,并通过一个递归函数f
遍历文档树,搜索<title>
标签的内容并打印出来。
评论已关闭