在Golang学习过程中,想到以往学习过的语言可以做爬虫,突发奇想,也用Go做了一个爬虫来爬取图片,以做困乏之时消遣作乐,话不多言,先上代码
package main
import (
"fmt"
"log"
"strconv"
"github.com/PuerkitoBio/goquery" // 解析html
//"io/ioutil"
"net/http"
"os"
"github.com/satori/go.uuid" // 生成图片文件名
"io/ioutil"
)
func getAllUrls() []string {
var urls []string
var url string
for i := 0; i < 2; i++ {
url = "http://www.meizitu.com/a/more_" + strconv.Itoa(i+1) + ".html" //网址信息
urls = append(urls, url)
}
return urls
}
func parseHtml(url string) {
doc, err := goquery.NewDocument(url) //获取将要爬取的html文档信息
if err != nil {
log.Fatal(err)
}
p:=make(chan string) //新开管道
doc.Find(".pic > a > img").Each(func(i int, s *goquery.Selection) { //遍历整个文档
img_url, _ := s.Attr("src")
// 启动协程下载图片
go download(img_url,p) //将管道传入download函数
fmt.Println("src = "+ <-p+"图片爬取完毕")
})
}
// 下载图片
func download(img_url string,p chan string) {
uid, _ := uuid.NewV4()