爬斗鱼颜值图片

package main

import (
	"net/http"
	"io"
	"fmt"
	"regexp"
	"os"
	"strconv"
)

func get(url string) (re string,e error) {
	resp,err:=http.Get(url)
	if err!=nil {
		e=err
		return
	}
	defer resp.Body.Close()
	m:=make([]byte,4096)
	for  {
		n,err:=resp.Body.Read(m)
		re+=string(m[:n])
		if err!=nil {
			if err==io.EOF {
				break
			} else {
				e=err
				return
			}
		}
	}
	return
}

func saveimage(url string,i int,page chan<- int)  {
	resp,err:=http.Get(url)
	if err!=nil {
		fmt.Print(err)
		return
	}
	defer resp.Body.Close()
	fp,err:=os.Create("/Users/zmx/img/"+strconv.Itoa(i)+".jpg")
	if err!=nil {
		fmt.Print(err)
		return
	}
	defer fp.Close()
	m:=make([]byte,4096)
	for  {
		n,err:=resp.Body.Read(m)
		fp.Write(m[:n])
		if err!=nil {
			if err==io.EOF {
				break
			} else {
				fmt.Print(err)
				return
			}
		}
	}
	page<-i
}

func main()  {
	str,err:=get("https://www.douyu.com/g_yz")
	if err!=nil {
		fmt.Print(err)
		return
	}
	page:=make(chan int)
	re:=regexp.MustCompile(`data-original="(?s:(.*?))"`)
	data:=re.FindAllStringSubmatch(str,-1)
	for i,item:=range data{
		go saveimage(item[1],i,page)
	}
	for i:=0; i<len(data); i++ {
		<-page
	}
}

猜你喜欢

转载自blog.csdn.net/baidu_25845567/article/details/82391128