gocolly 是一款快速优雅的golang爬虫框架,简单易用,功能完备。
官网地址: http://go-colly.org
go get github.com/gocolly/colly/v2
package main
import (
"fmt"
"github.com/gocolly/colly/v2"
)
func main() {
// 实例化默认收集器
c := colly.NewCollector(
// 设置允许采集的域名,多个使用 , 隔开
colly.AllowedDomains("www.jianshu.com", "www.baidu.com"),
)
// 在每个具有href属性的a元素上调用回调
c.OnHTML("a[href]", func(e *colly.HTMLElement) {
link := e.Attr("href")
fmt.Printf("Link found: %q -> %s\n", e.Text, link)
// 继续访问发现的链接
// c.Visit(e.Request.AbsoluteURL(link))
})
// 在提出请求之前,请打印 “访问…”
c.OnRequest(func(r *colly.Request) {
fmt.Println("Visiting", r.URL.String())
})
// 开始采集
err := c.Visit("https://www.jianshu.com/")
fmt.Printf("err: %v\n", err)
}