Golang编写的爬取网页图片的小程序

学习Golang语言也有一段时间了,对Golang的一些特性和优点也了解了不少,工作闲暇之余写了个爬取网页图片的小工具玩,有喜欢的码友可以下载下来编译玩玩,项目代码路径:https://github.com/xiezhijun/spidderGO.git

代码中主要是用 go 和 channel 配合使用,开启多个线程并发处理,一边爬取并解析网页,一边下载图片,如图所示:

    waitGroup.Add(1)
	go func() {
		urls = append(urls, TARGET_URL)
		for url:=urls[0]; len(urls)>0;{
			getUrl(url)
		}
		fmt.Println("解析所有url结束!")

		// 解析完成,释放chanUrl
		close(chanUrl)
		waitGroup.Done()
	}()

	waitGroup.Add(1)
	go func() {
		for url := range chanUrl {
			getPictureUrl(url)
		}

		fmt.Println("解析所有图片url结束!")
		// 解析完成,释放chanUrl
		close(chanImgUrl)
		waitGroup.Done()
	}()

	// 解析目标url
	 chanUrl <- TARGET_URL

	 // 开启多个下载线程
	 for i:=0; i<5; i++ {
		 waitGroup.Add(1)
		 go readChanUrl(chanImgUrl)
	 }

	waitGroup.Wait()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值