go-colly爬取图片-以基恩士网站为例

爬取基恩士网站主页上的产品图,以下是一个简单的示例,注意要先创建对应的目录。

package main

import (
    "fmt"
    "github.com/gocolly/colly"
    "io"
    "net/http"
    "os"
)
// global variables
var destUrl string

/**
download images
 */
func downloadImages(_ int, e *colly.HTMLElement) {
    srcRef := e.Attr("src")
    fullurl := destUrl + srcRef
    res, _ := http.Get(fullurl)
    savedPath := "D:" + srcRef
    // TODO create dirs before create file
    f, err := os.Create(savedPath)
    if(err != nil) {
        panic(err)
    }
    io.Copy(f, res.Body)
    fmt.Println(destUrl  + srcRef)
}

func main()  {
    c := colly.NewCollector()
    
    c.OnHTML("ul[class]", func(e *colly.HTMLElement) {

        className := e.Attr("class")
        if (className == "ProductsList full") {
            e.ForEach("img[src]", downloadImages)
        }
    })
    
    c.OnRequest(func(r *colly.Request) {
        fmt.Println("Visiting", r.URL)
    })

    destUrl = "https://www.keyence.com.cn"
    c.Visit(destUrl)
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容