给我一个golang用html库解析网页的例子
以下是一个使用Golang的html库解析网页的例子:
package main
import (
"fmt"
"net/http"
"golang.org/x/net/html"
)
func main() {
resp, err := http.Get("https://www.example.com")
if err != nil {
fmt.Println(err)
return
}
defer resp.Body.Close()
doc, err := html.Parse(resp.Body)
if err != nil {
fmt.Println(err)
return
}
var traverse func(*html.Node)
traverse = func(n *html.Node) {
if n.Type == html.ElementNode && n.Data == "a" {
for _, a := range n.Attr {
if a.Key == "href" {
fmt.Println(a.Val)
break
}
}
}
for c := n.FirstChild; c != nil; c = c.NextSibling {
traverse(c)
}
}
traverse(doc)
}
这个例子会获取一个网页并解析其中的所有链接。它使用了Golang的标准库net/http来获取网页,然后使用Golang的html库来解析HTML文档。在解析过程中,它使用了一个递归函数来遍历HTML文档中的所有节点,并检查是否有链接。如果有,它就输出链接的URL。
原文地址: https://www.cveoy.top/t/topic/bTmx 著作权归作者所有。请勿转载和采集!