如何使gocolly爬行速度变慢



我正在使用gocolly从我的网站收集数据,挑战是,gocolly在爬行url时过于激进。我添加了一个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运行时,我的站点上的性能都出现峰值。

添加时间。睡眠可以是一个选项,但如果可能的话,我宁愿使用gocolly Limit()。

您忘记设置DomainGlob参数:

c.Limit(&colly.LimitRule{
DomainGlob:  "*",
//Parallelism: 2,
//Delay:      5 * time.Second,
})

相关内容

  • 没有找到相关文章

最新更新