653

0

Colly

快速优雅的 Gophers 抓取框架

Colly

闪电般快速优雅的 Gophers 抓取框架

Colly 提供了一个干净的接口来编写任何类型的爬虫/scraper/spider。

使用 Colly,您可以轻松地从网站中提取结构化数据,这些数据可用于广泛的应用,如数据挖掘、数据处理或存档。

GoDoc 开放集体的支持者 开放集体的赞助商 构建状态 成绩单 查看示例 代码覆盖率 福萨状态 推特网址

特征

  • 清洁 API
  • 快速(在单核上 > 1k 请求/秒)
  • 管理每个域的请求延迟和最大并发
  • 自动 cookie 和会话处理
  • 同步/异步/并行抓取
  • 缓存
  • 非 unicode 响应的自动编码
  • Robots.txt 支持
  • 分布式抓取
  • 通过环境变量配置
  • 扩展

例子

func main() {
    c := colly.NewCollector()

    // Find and visit all links
    c.OnHTML("a[href]", func(e *colly.HTMLElement) {
        e.Request.Visit(e.Attr("href"))
    })

    c.OnRequest(func(r *colly.Request) {
        fmt.Println("Visiting", r.URL)
    })

    c.Visit("http://go-colly.org/")
}

有关更详细的示例,请参见示例文件夹

安装

将 colly 添加到您的go.mod文件中:

module github.com/x/y

go 1.14

require (
        github.com/gocolly/colly/v2 latest
)