我想解析HTML.Eg的特定div的值。我有像" funcname" 这样的类,所以我可以在golang中解析这个div的值吗?
答案 0 :(得分:9)
您可以使用the github.com/PuerkitoBio/goquery package。如果您熟悉jQuery选择器,那么对您来说不会有问题。
doc, err := goquery.NewDocument(contents)
// handle err
doc.Find(".funcname")
答案 1 :(得分:0)
如果你不介意更简单的事情,我写了我自己的模块来做 这。这个可以满足您的要求:
package main
import (
"github.com/89z/mech"
"strings"
)
const source = `
<!DOCTYPE html>
<html>
<body>
<header>
<div class="funcname">One</div>
<div class="funcname">Two</div>
</header>
</body>
</html>
`
func main() {
r := strings.NewReader(source)
doc, err := mech.Parse(r)
if err != nil {
panic(err)
}
div := doc.ByAttr("class", "funcname")
div.Scan()
println(div.Text()) // One
}
其他示例:
div := doc.ByAttr("class", "funcname")
for div.Scan() {
println(div.Text()) // One, Two
}
div := doc.ByTag("div")
div.Scan()
println(div.Text()) // One
div := doc.ByTag("div")
for div.Scan() {
println(div.Text()) // One, Two
}
class := div.Attr("class")
println(class) // funcname