Skip to content

爬虫配置

Colly 的默认配置针对在一项作业中抓取较少数量的站点进行了优化。如果您想抓取数百万个网站,则此设置并不是最佳选择。以下是一些调整:


使用后端持久化存储

默认情况下,Colly 在内存中存储 cookie 和访问过的 URL。您可以将内置内存存储后端替换为任何自定义后端。查看更多详细信息

具有递归调用的长时间运行作业使用异步请求

默认情况下,当请求未完成时,Colly 会阻塞,因此从回调中递归调用 Collector.Visit 会产生不断增长的堆栈。使用 Collector.Async = true 可以避免这种情况。 (不要忘记将 c.Wait() 与 async 一起使用。)

禁用或限制连接 keep-alive

Colly 使用 HTTP keep-alive 来提高抓取速度。它需要打开的文件描述符,因此长时间运行的作业可以轻松达到 max-fd 限制。

可以使用以下代码禁用 HTTP Keep-alive:

go
c := colly.NewCollector()
c.WithTransport(&http.Transport{
    DisableKeepAlives: true,
})