猿问

执行 GET 请求时程序在连续超时后停止

我正在制作一个抓取 html、css 和 js 页面的爬虫。爬虫是一个典型的爬虫,有 4 个 go-routines 同时运行以获取资源。为了学习,我一直在使用 3 个测试站点。爬虫工作正常并在测试其中两个时显示程序完成日志。


然而,在第三个网站中,在获取 css 链接时发生了太多超时。这最终导致我的程序停止。它获取链接,但在连续超过 20 次超时后,程序停止显示日志。基本上它会停止。我不认为这是事件日志控制台的问题。


我需要单独处理超时吗?我不会发布完整的代码,因为它与我正在寻求的概念性答案无关。但是代码是这样的:


for {

    site, more := <-sites

    if more {

        url, err := url.Parse(site)

        if err != nil {

            continue

        }

        response, error := http.Get(url.String())


        if error != nil {

            fmt.Println("There was an error with Get request: ", error.Error())

            continue

        }


        // Crawl function

    }

}


慕斯王
浏览 145回答 1
1回答
随时随地看视频慕课网APP

相关分类

Go
我要回答