阅读 22240

感受一下 Go 写爬虫 | Go主题月

之前写爬虫用的是 python + scrapy,现在来感受一下使用 Go 写爬虫,本文将介绍一下 Go 的爬虫框架 Colly

框架介绍

Colly 是 Gopher 们的非常快速且优雅的爬虫框架,提供了一个干净的界面来编写任何种类的爬虫。可以轻松地从网站中提取结构化数据,这些数据可用于各种应用程序,例如数据挖掘,数据处理或归档。

框架特点

我们来看下这个框架的一些优点:

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

安装

这里有两种方式可以安装 Colly

方式一

go.mod 添加 github.com/gocolly/colly/v2 latest

module github.com/k8scat/spider

go 1.14

require (
    github.com/gocolly/colly/v2 latest
)
复制代码

方式二

Go 模块安装的一般方式:

go get -u github.com/gocolly/colly/v2
复制代码

简单案例

现在让我们试一试这个框架吧:

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/")
}
复制代码

总结

Go 写爬虫的整体感受还是很好的,值得一试!

文章分类
后端
文章标签