go 语言爬虫库goquery介绍
Goquery 是一个用于 Go 语言的 HTML 解析和查询库,它基于 jQuery 的语法。Goquery 可以轻松地从 HTML 文档中选择和迭代元素,提取数据。
以下是一个使用 Goquery 的简单示例,它从一个网页上抓取所有的链接:
package main
import (
"fmt"
"log"
"net/http"
"github.com/PuerkitoBio/goquery"
)
func main() {
// 请求网页
res, err := http.Get("https://example.com")
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)
}
// 使用goquery解析HTML文档
doc, err := goquery.NewDocumentFromReader(res.Body)
if err != nil {
log.Fatal(err)
}
// 查询所有的a标签
doc.Find("a").Each(func(i int, s *goquery.Selection) {
// 对于每个a标签,使用Attr函数获取href属性
href, exists := s.Attr("href")
if exists {
fmt.Printf("Link: %s\n", href)
}
})
}
在这个例子中,我们首先使用 http.Get
获取了一个网页的内容。然后,我们使用 goquery.NewDocumentFromReader
函数将获取到的内容解析成一个goquery文档对象。最后,我们使用 doc.Find("a")
查询所有的a标签,并通过 s.Attr("href")
获取它们的href属性,也就是链接地址。这个过程类似于使用jQuery选择器选取DOM元素并操作它们。
评论已关闭