我正在使用 gocolly 从我的网站收集数据,挑战在于,在抓取 URL 时,gocolly 过于激进。我添加了一个 RandomDelay
更新
根据我改变的答案
c.Limit(&colly.LimitRule{
RandomDelay: 10 * time.Second,
})
至
c.Limit(&colly.LimitRule{
RandomDelay: 10 * time.Second,
Parallelism: 2,
DomainGlob: "*mysite*",
})
但是当它爬行时,它会在几秒钟内完成:
原始输出
2021/02/04 08:17:33 Visiting https://www....
2021/02/04 08:17:33 Visiting https://www....
2021/02/04 08:17:34 Visiting https://www....
2021/02/04 08:17:34 Visiting https://www....
2021/02/04 08:17:34 Visiting https://www....
2021/02/04 08:17:34 Visiting https://www....
更新后的输出
2021/02/04 09:37:00 Visiting https://www...
2021/02/04 09:37:07 Visiting https://www...
2021/02/04 09:37:16 Visiting https://www...
我正在寻找的是一种确保gocolly 不会比例如5-10 秒公关页面更快地抓取这些页面的方法。原因是,我不想在每次 gocolly 运行时看到我的网站上的性能飙升。
添加 time.Sleep 可能是一种选择,但如果可能的话,我宁愿使用 gocolly Limit() 。