• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    go语言实现抓取高清图片

    看到有很多python 的,然后写了个go 的,可以抓取高清图片

     getp.go

    复制代码 代码如下:

    package main
    import (
        "io/ioutil"
        "log"
        "net/http"
        "os"
        "regexp"
        "strconv"
        "strings"
        "sync"
    )
    var urlist [4]string
    var album chan string
    var w sync.WaitGroup
    var dir string
    func main() {
        dir = "tmp/"
        err := os.Mkdir(dir, 0777)
        if err != nil {
            isexist := os.IsExist(err)
            log.Println(isexist)
        }
        album = make(chan string, 200)
        urlist = [4]string{"http://me2-sex.lofter.com/tag/%E7%BE%8E%E5%A5%B3%E6%91%84%E5%BD%B1?page=", "http://me2-sex.lofter.com/tag/%E6%AC%A7%E7%BE%8E?page=", "http://me2-sex.lofter.com/tag/%E6%A8%A1%E7%89%B9?page=", "http://me2-sex.lofter.com/tag/%E7%BE%8E%E5%AA%9B%E9%A6%86?page="}
        for _, v := range urlist {
            for i := 1; i = 20; i++ {
                url := v + strconv.Itoa(i)
                w.Add(1)
                go GetAlbum(url)
                w.Wait()
            }
        }
    }
    func GetAlbum(url string) {
        data := GetUrl(url)
        body := string(data)
        part := regexp.MustCompile(`a class="img" href="(.*)">`)
        match := part.FindAllStringSubmatch(body, -1)
        for _, v := range match {
            album - v[1]
            w.Add(1)
            go GetItem()
        }
        w.Done()
    }
    func GetItem() {
        url := -album
        defer func() {
            ret := recover()
            if ret != nil {
                log.Println(ret)
                w.Done()
            } else {
                w.Done()
            }
        }()
        data := GetUrl(url)
        if len(data) > 10 {
            body := string(data)
            part := regexp.MustCompile(`bigimgsrc="(.*)"`)
            match := part.FindAllStringSubmatch(body, -1)
            for _, v := range match {
                str := strings.Split(v[1], "/")
                length := len(str)
                source := GetUrl(v[1])
                name := str[length-1]
                file, err := os.Create(dir + name)
                if err != nil {
                    panic(err)
                }
                size, err := file.Write(source)
                defer file.Close()
                if err != nil {
                    panic(err)
                }
                log.Println(size)
            }
        }
    }
    func GetUrl(url string) []byte {
        ret, err := http.Get(url)
        if err != nil {
            log.Println(url)
            status := map[string]string{}
            status["status"] = "400"
            status["url"] = url
            panic(status)
        }
        body := ret.Body
        data, _ := ioutil.ReadAll(body)
        return data
    }

    以上所述就是本文的全部内容了,希望对大家熟悉go语言能够有所帮助。

    您可能感兴趣的文章:
    • Django Admin实现上传图片校验功能
    • Django实现图片文字同时提交的方法
    • Django中实现点击图片链接强制直接下载的方法
    • go语言读取json并下载高清妹子图片
    • GO语言实现批量压缩图片和水印
    • go语言实现将重要数据写入图片中
    • Go语言图片处理和生成缩略图的方法
    • golang实现通过smtp发送电子邮件的方法
    • golang基于websocket实现的简易聊天室程序
    • golang使用sort接口实现排序示例
    • golang守护进程用法示例
    • golang实现http服务器处理静态文件示例
    • golang image图片处理示例
    上一篇:GO语言实现批量压缩图片和水印
    下一篇:golang使用正则表达式解析网页
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    go语言实现抓取高清图片 语言,实现,抓取,高清,图片,