美文网首页
简单的图片爬虫

简单的图片爬虫

作者: 荒古遗尘狗贼 | 来源:发表于2020-03-09 22:49 被阅读0次

    只需要修改myurl这个变量就可以了,这是一个最初级的版本

    package main

    import (

    "fmt"

    "io/ioutil"

    "net/http"

    "regexp"

    )

    //定义过滤的正则表达式

    var temp =`"http?://[\s\S]+?"`

    var photo =`https?://[^"]+?(\.((jpg)|(png)|(jpeg)|(gif)|(bmp)))`

    var myurl string

    var data=make(map[int]string)

    var con =`\/`

    func MyGet(){

    //定义要爬取的网址

      myurl="https://www.79xte.com/tupian/85803.html"

      //myurl="https://www.baidu.com"

    //resq,err:=http.PostForm(myurl,url.Values{"name":{"lisheng"}})

    //发送Get请求,保存返回的内容

      resq,err:=http.Get(myurl)

    if err!=nil{

    fmt.Println("Get Testnet statues faile:",err)

    }

    //当函数结束时关闭资源

      defer resq.Body.Close()

    //读取返回网页的body部分

      bytebody,err:=ioutil.ReadAll(resq.Body)

    //将读取的二进制数组转换为string准备使用正则进行筛选。

      strbody:=string(bytebody)

    //解析成一个正则对象

      re:=regexp.MustCompile(photo)

    //匹配字符串的内容

      res:=re.FindAllStringSubmatch(strbody,-1)

    //因为匹配完res是一个[][]string,所以就把内容取出来放到一个全局的map中备用。

      for key,_:=range res{

    s:=res[key][0]

    data[key]=s[0:]

    }

    }

    func Dwonlocd(url string ,filename string)(ok bool){

    resq,err:=http.Get(url)

    defer resq.Body.Close()

    if err!=nil{

    fmt.Println("Get Error:",err)

    }

    bytes,err:=ioutil.ReadAll(resq.Body)

    if err!=nil{

    fmt.Println("ReadAll Erroe:",err)

    }

    //filename=`C:\Users\Administrator\Desktop\test\no\`+string(time.Now().Unix())+filename

      filename=`C:\Users\Administrator\Desktop\test\no\`+filename

    fmt.Println(filename)

    err=ioutil.WriteFile(filename,bytes,0666)

    if err!=nil{

    fmt.Println(err)

    return false

      }else{

    return true

      }

    }

    func main(){

    var jishu int

    MyGet()

    for _,value:=range data{

    temp=value

    re:=regexp.MustCompile(con)

    res:=re.ReplaceAllString(temp,"${n}s")

    status:=Dwonlocd(value,res[7:])

    fmt.Println(status)

    jishu=jishu+1

    }

    fmt.Println("Success down photo ",jishu)

    }

    相关文章

      网友评论

          本文标题:简单的图片爬虫

          本文链接:https://www.haomeiwen.com/subject/yuqvdhtx.html