卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章34941本站已运行393

如何忽略打印达到最大深度限制 go colly

如何忽略打印达到最大深度限制 go colly

php小编草莓今天为大家介绍一种方法,可以帮助我们在使用go colly爬虫框架时,忽略打印达到最大深度限制的问题。在爬取网页数据的过程中,我们通常会遇到结构嵌套较深的情况,而colly框架默认的打印深度限制可能无法完整展示所有数据。通过对colly框架的调试选项进行设置,我们可以轻松解决这个问题,获得更全面的数据展示。接下来,让我们一起来了解具体的操作步骤吧!

问题内容

我有一个 go colly 爬虫,我正在尝试爬行许多网站。在我的终端上它打印了很多:

2023/05/30 02:22:56 Max depth limit reached
2023/05/30 02:22:56 Max depth limit reached
2023/05/30 02:22:56 Max depth limit reached
2023/05/30 02:22:56 Max depth limit reached
2023/05/30 02:22:56 Max depth limit reached
2023/05/30 02:22:56 Max depth limit reached
2023/05/30 02:22:56 Max depth limit reached

这让我很难阅读我放置的一些印刷品。我想知道是否有任何方法可以忽略在终端中打印此内容。谢谢

解决方法

达到最大深度限制为colly.errmaxdepth。你的项目中必须有这样的代码:

c := colly.newcollector(colly.maxdepth(5))

// ...

if err := c.visit("http://go-colly.org/"); err != nil {
    log.println(err)
}

如果您不想记录此错误,请添加一个简单的检查来排除它:

c := colly.newcollector(colly.maxdepth(5))

// ...

if err := c.visit("http://go-colly.org/"); err != nil {
    // log the error only when the error is not errmaxdepth.
    if err != colly.errmaxdepth {
        log.println(err)
    }
}

另一个选项是将输出重定向到文件:

go run . 2>&1 >log.txt

或者使用 tee 将输出复制到文件并复制到标准输出:

go run . 2>&1 | tee log.txt
卓越飞翔博客
上一篇: 如何将泛型与自定义类型一起使用?
下一篇: 返回列表
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏