之前爬虫用python写总是出问题,于是换成了Go来写,大致内容如下:for;next_url!=first_url;{count+=1strBody=getContent(next_url)re=regexp.MustCompile("photos-view-id-\\d+.html")next_url=getNextUrl(strBody)re=regexp.MustCompile("http://xxxx/data/[^\"]+")pic_url=re.FindAllString(strBody,2)[1]filename=fmt.Sprintf("%03d.jpg",count)godownloadFromUrl(pic_url,save_path+filename)}但是这样会有一个问题就是我的downloadFromUrl还没执行完成时,程序已经退出了,导致最后几个文件未下载成功。有什么方法可以等待操作完成之后退出程序的么?
2 回答
白衣染霜花
TA贡献1796条经验 获得超10个赞
参考@方泽图的回复,实现方式如下:varwgsync.WaitGroup...for;next_url!=first_url;{....filename=fmt.Sprintf("%03d.jpg",count)wg.Add(1)gofunc(pic_urlstring,savetostring){deferwg.Done()downloadFromUrl(pic_url,saveto)}(pic_url,saveto)}wg.Wait()
添加回答
举报
0/150
提交
取消