我想在 Go 中编写一个简单的网络爬虫:
从 URL 中获取带有模式的所有 href
提取一些特定的字段
并写入 CSV 文件
这是我的代码:
问题是在所有 goroutine 完成后通道没有关闭,我必须按control+C才能返回我的 shell 提示:
2016/03/02 09:34:05 Fetching URL ...
2016/03/02 09:34:05 Fetching URL ...
2016/03/02 09:34:05 Fetching URL ...
^Csignal: interrupt
通过阅读本文,我将getDocfunc 中的最后一行更改为:
go func() {
wg.Wait()
close(c)
}()
现在我可以在运行时恢复我的 shell 提示,但是在所有 goroutine 完成之前通道已关闭,并且没有任何内容写入 CSV 文件。
我哪里做错了?
一只萌萌小番薯
皈依舞
相关分类