0
点赞
收藏
分享

微信扫一扫

Go爬虫框架Colly


Colly是Go的爬虫框架,简单快速,适合日常工作获取数据。

安装

go get -u github.com/gocolly/colly/...

示例

package main

import (
"fmt"
"time"

"github.com/gocolly/colly"
)

func main() {
ua := "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36"
c := colly.NewCollector(
colly.UserAgent(ua), // 设置UA
colly.DetectCharset(), // 自动编码,防止乱码
colly.AllowedDomains("www.tcmap.com.cn"), // 限制域名
)

// 响应内容是HTML时调用
c.OnHTML("a[href*=\"shandong\"]", func(h *colly.HTMLElement) {
fmt.Println(h.Text)
h.Request.Visit(h.Attr("href"))
})

c.Limit(&colly.LimitRule{
DomainGlob: "*",
RandomDelay: 1 * time.Second, // 延时
})

// 请求前调用
c.OnRequest(func(r *colly.Request) {
fmt.Println("访问:", r.URL)
})

// 收到响应后调用
c.OnResponse(func(r *colly.Response) {
// fmt.Println(string(r.Body))
})

// 请求发生错误时调用
c.OnError(func(r *colly.Response, err error) {
fmt.Println(err)
})

c.Visit("http://www.tcmap.com.cn/shandong/")
}

参考链接

​​http://go-colly.org/docs/​​


举报

相关推荐

0 条评论