首页 / 娱乐 / 明星八卦 / 正文

jquery find(GoQuery - Go语言的jQuery)

放大字体  缩小字体 来源:海尔品牌价值 2026-04-15 13:32  浏览次数:8

goquery,是 github 上 PuerkitoBio 开源的 Go 语言库,代码仓库在 https://github.com/PuerkitoBio/goquery。goquery 是一个用于查询和操作 DOM 元素的库,并采用了尽可能与 jQuery 相似的语法,以降低学习难度和使用门槛。

Go语言

安装



示例

下面给出一个 goquery 的使用例子:

package mainimport (    "fmt"    "log"    "net/http"    "github.com/PuerkitoBio/goquery")func ExampleScrape() {    // 请求HTML页面.    res, err := http.Get("http://metalsucks.net")    if err != nil {        log.Fatal(err)    }    defer res.Body.Close()    if res.StatusCode != 200 {        log.Fatalf("status code error: %d %s", res.StatusCode, res.Status)    }    // 解析HTML生成goquery文档.    doc, err := goquery.NewdocumentFromReader(res.Body)    if err != nil {        log.Fatal(err)    }    // 在文档中进行查找.    doc.Find(".sidebar-reviews article .content-block").Each(func(i int, s *goquery.Selection) {        // 对于查找到的每一项,进一步获取目标文本内容.        band := s.Find("a").Text()        title := s.Find("i").Text()        fmt.Printf("Review %d: %s - %s\n", i, band, title)    })}func main() {    ExampleScrape()}

我们首先使用 net/http 进行 HTTP 请求,得到目标网站的响应。然后,使用了goquery 的 NewdocumentFromReader 来从响应读取并解析得到一个 HTML 文档。NewdocumentFromReader 是这样定义的:

func NewdocumentFromReader(r io.Reader) (*document, error)

对于结果集合,使用 Selection 的 Each 方法进行遍历,对应 jQuery 中的 each 函数:

func (s *Selection) Each(f func(int, *Selection)) *Selection


总结

goquery库方便了 Go 语言进行网页抓取和解析的工作,使得Go语言在该领域有了门槛较低、使用方便的工具。

goquery库目前已经历了数年的开发,代码质量较高,注释丰富,值得研究学习。

打赏
0相关评论
热门搜索排行
精彩图片
友情链接
声明:本站信息均由用户注册后自行发布,本站不承担任何法律责任。如有侵权请告知立立即做删除处理。
违法不良信息举报邮箱:115904045
头条快讯网 版权所有
中国互联网举报中心