Colly 實戰(zhàn):3 分鐘爬完 xkcd 周邊商店

2025-07-14 18:34 更新

官方 30 行示例太簡潔?我把它改成 中文注釋 + 擴(kuò)展模板,讓你 3 分鐘 批量抓取 xkcd 商店的全部商品并保存為 CSV,Excel 直接打開!

一、整體思路(先背下來)

  1. 入口https://store.xkcd.com/collections/everything
  2. 解析商品.product-grid-item → 名稱 / 價格 / 鏈接 / 圖片
  3. 自動翻頁.next a[href]
  4. 結(jié)果:CSV 文件,含表頭

二、精簡中文代碼(20 行)

package main


import (
    "encoding/csv"
    "log"
    "os"


    "github.com/gocolly/colly/v2"
)


func main() {
    fileName := "xkcd_store.csv"
    file, _ := os.Create(fileName)
    defer file.Close()


    writer := csv.NewWriter(file)
    defer writer.Flush()


    // 1. 寫入表頭
    writer.Write([]string{"商品名", "價格", "商品鏈接", "圖片鏈接"})


    // 2. 創(chuàng)建收集器
    c := colly.NewCollector(colly.AllowedDomains("store.xkcd.com"))


    // 3. 解析單個商品
    c.OnHTML(".product-grid-item", func(e *colly.HTMLElement) {
        writer.Write([]string{
            e.ChildAttr("a", "title"),
            e.ChildText("span"),
            e.Request.AbsoluteURL(e.ChildAttr("a", "href")),
            "https:" + e.ChildAttr("img", "src"),
        })
    })


    // 4. 自動翻頁
    c.OnHTML(`.next a[href]`, func(e *colly.HTMLElement) {
        e.Request.Visit(e.Attr("href"))
    })


    // 5. 啟動
    c.Visit("https://store.xkcd.com/collections/everything")
    log.Printf("? 爬取完成,查看 %s\n", fileName)
}

三、3 步跑通

步驟 命令/操作 說明
① 安裝 go mod init xkcd && go get github.com/gocolly/colly/v2 一鍵拉庫
② 保存 復(fù)制上方代碼 → main.go 零配置
③ 運(yùn)行 go run main.go 生成 xkcd_store.csv

四、結(jié)果示例(CSV)

商品名 價格 商品鏈接 圖片鏈接
xkcd Volume 0 $15.00 https://store.xkcd.com/products/volume-0 https://cdn.shopify.com/...jpg
xkcd Volume 1 $15.00 ... ...

五、1 分鐘擴(kuò)展:爬任意 Shopify 商店

需求 改動 2 處
換域名 把 AllowedDomains 和 Visit 換成目標(biāo)商店
換選擇器 F12 找到商品卡片對應(yīng)的 CSS 類

六、常見問題速查

癥狀 原因 解決
0 條數(shù)據(jù) 頁面改版 更新 .product-grid-item 等選擇器
403 被攔截 缺 UA 加 UserAgent("Mozilla/5.0...")
圖片不顯示 缺協(xié)議 加 https: 前綴
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號