本文介绍如何在 go 中借助 goquery 库,通过 css 选择器(如 `.funcname`)高效解析 html 文档并提取目标元素的文本内容或属性值,适用于爬虫、页面数据抽取等场景。
在 Go 生态中,原生 net/html 包虽可解析 HTML,但操作繁琐、缺乏类似 jQuery 的链式查询能力。推荐使用成熟、轻量且语法直观的第三方库 —— github.com/PuerkitoBio/goquery,它封装了 net/html,提供类 jQuery 的 CSS 选择器支持,大幅提升开发效率。
首先安装依赖:
go get github.com/PuerkitoBio/goquery
以下是一个完整示例,演示如何从 HTML 字符串中提取所有 class="funcname" 的
元素的文本内容:packagemain import ( "fmt" "strings" "github.com/PuerkitoBio/goquery" ) func main() { html := ` API Reference ParseHTML FindElement © 2025 ` doc, err := goquery.NewDocumentFromReader(strings.NewReader(html)) if err != nil { panic(err) } // 使用 CSS 选择器查找所有 class="funcname" 的元素 doc.Find(".funcname").Each(func(i int, s *goquery.Selection) { text := strings.TrimSpace(s.Text()) fmt.Printf("第 %d 个 funcname: %s\n", i+1, text) // 输出: // 第 1 个 funcname: ParseHTML // 第 2 个 funcname: FindElement }) }
掌握 goquery 的 CSS 选择器能力,即可快速构建健壮、可维护的 HTML 数据提取逻辑,是 Go 开发者处理 Web 内容不可或缺的实用技能。
立即学习“前端免费学习笔记(深入)”;