我是靠谱客的博主 秀丽小虾米,这篇文章主要介绍一张图片Go骑在pHP,go-爬图片,现在分享给大家,希望可以做个参考。

go语言爬取图片

注:动态加载出来的爬取不到,或怕取出来图片出错,代码中的网页是可以正常爬取的

package main

import (

"fmt"

"io"

"net/http"

"os"

"regexp"

"strconv"

_ "strings"

)

func SaveImg(idx int, url string, page chan int) {

path := "D:/gogogo/src/go-爬虫/图片爬取/main/images/" + strconv.Itoa(idx+1) + ".jpg"

f, err := os.Create(path)

// resp, err1 := http.Get(url)

if err != nil {

fmt.Println("err:", err)

return

}

defer f.Close()

resp, err := http.Get(url)

if err != nil {

fmt.Println("err:", err)

return

}

defer resp.Body.Close()

buf := make([]byte, 4096)

for {

n, err2 := resp.Body.Read(buf)

if n == 0 {

break

}

if err2 != nil && err2 != io.EOF {

err = err2

return

}

f.Write(buf[:n])

}

page

}

func HttpGet(url string) (result string, err error) {

resp, err1 := http.Get(url)

if err1 != nil {

err = err1

return

}

defer resp.Body.Close()

buf := make([]byte, 4096)

for {

n, err2 := resp.Body.Read(buf)

if n == 0 {

break

}

if err2 != nil && err2 != io.EOF {

err = err2

return

}

result += string(buf[:n])

}

return

}

func main() {

url := "http://sc.chinaz.com/tupian/ribenmeinv.html"

result, err := HttpGet(url)

if err != nil {

fmt.Println("err:", err)

return

}

// (?s:(.*?))

ret1 := regexp.MustCompile(`

alls := ret1.FindAllStringSubmatch(result, -1)

page := make(chan int)

n := len(alls)

for idx, imgURL := range alls {

// fmt.Println(imgURL[1])

go SaveImg(idx, imgURL[1], page)

}

for i := 0; i < n; i++ {

fmt.Printf("第%d下载完成n",

}

}

最后

以上就是秀丽小虾米最近收集整理的关于一张图片Go骑在pHP,go-爬图片的全部内容,更多相关一张图片Go骑在pHP内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部