我正在使用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,
})