在Go 1.19
版本中,创建一个站点模板爬虫可以使用goquery
库来解析HTML并抓取所需的数据。以下是一个基本的爬虫示例,它展示了如何使用goquery
来抓取网页上的信息:
安装依赖库:
首先,确保你已经安装了goquery
库。如果还没有安装,可以通过下面的命令来安装:
go get github.com/PuerkitoBio/goquery
编写爬虫代码
下面是一个简单的爬虫代码示例,用于抓取网页上的标题:
package main
import (
"fmt"
"log"
"github.com/PuerkitoBio/goquery"
"net/http"
)
func main() {
// 请求网页
response, err := http.Get("https://example.com")
if err != nil {
log.Fatal(err)
}
defer response.Body.Close()
// 加载HTML文档
doc, err := goquery.NewDocumentFromReader(response.Body)
if err != nil {
log.Fatal(err)
}
// 使用goquery选择器来查找标题
doc.Find("h1").Each(func(i int, s *goquery.Selection) {
fmt.Println(s.Text())
})
}
运行爬虫
保存上述代码到一个.go
文件中,例如main.go
,然后在终端中运行:
go run main.go
结语
这将输出https://example.com
页面上所有的<h1>
标签内的文本。
请注意,实际的爬虫可能需要处理更复杂的逻辑,比如处理JavaScript渲染的页面、处理重定向、设置请求头以模仿浏览器行为、处理反爬机制、存储抓取的数据等。此外,对于大规模的爬虫项目,可能还需要考虑并发控制和资源管理,以避免对目标网站造成过大的负担。
后续再分享一个完整的项目示例