Colly 实战:5 分钟爬完加密货币行情并保存 CSV

2025-07-14 17:31 更新

复制即可跑!用 Colly 抓取 CoinMarketCap 全币种行情,一键导出 cryptocoinmarketcap.csv,Excel 直接打开。

一、完整代码(中文注释)

package main


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


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


func main() {
    fileName := "cryptocoinmarketcap.csv"
    file, err := os.Create(fileName)
    if err != nil {
        log.Fatalf("无法创建文件 %s: %v", fileName, err)
    }
    defer file.Close()


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


    // 1. 写入表头
    writer.Write([]string{
        "名称", "符号", "价格(USD)", "24h成交量(USD)",
        "市值(USD)", "1h涨跌", "24h涨跌", "7d涨跌",
    })


    // 2. 创建收集器
    c := colly.NewCollector()


    // 3. 解析每一行数据
    c.OnHTML("#currencies-all tbody tr", func(e *colly.HTMLElement) {
        writer.Write([]string{
            e.ChildText(".currency-name-container"), // 币种名称
            e.ChildText(".col-symbol"),              // 符号
            e.ChildAttr("a.price", "data-usd"),      // 价格
            e.ChildAttr("a.volume", "data-usd"),     // 成交量
            e.ChildAttr(".market-cap", "data-usd"),  // 市值
            e.ChildText(".percent-1h"),              // 1小时涨跌
            e.ChildText(".percent-24h"),             // 24小时涨跌
            e.ChildText(".percent-7d"),              // 7天涨跌
        })
    })


    // 4. 开始抓取
    c.Visit("https://coinmarketcap.com/all/views/all/")
    log.Printf("✅ 抓取完成,打开 %s 查看结果\n", fileName)
}

二、3 步运行

步骤 命令 说明
① 安装依赖 go mod init coin && go get github.com/gocolly/colly/v2 自动拉库
② 保存文件 复制上方代码 → main.go 零配置
③ 一键运行 go run main.go 终端出现 ✅ 抓取完成

三、结果预览(Excel 打开)

名称 符号 价格(USD) 24h成交量(USD) 市值(USD) 1h涨跌 24h涨跌 7d涨跌
Bitcoin BTC 61234.56 30.5B 1.2T +0.12% -1.23% +5.67%
Ethereum ETH 3456.78 15.2B 412.3B -0.45% +2.34% -3.12%
... ... ... ... ... ... ... ...

四、常见坑 30 秒排查

症状 原因 解决
无数据 / 0 行 页面改版,选择器失效 用浏览器 F12 → 复制新选择器
文件乱码 Windows 用 Excel 打开 CSV 默认 UTF-8;Excel 数据→自文本导入
被 403 拦截 缺少 UA 或限速 加 colly.UserAgent("Mozilla/5.0...") 与 Limit

五、1 分钟扩展练习

目标 改动一行
改爬 涨幅榜 把 URL 换成 https://coinmarketcap.com/gainers-losers/
保存 JSON 用 encoding/json 替换 encoding/csv
存 MySQL 在 OnHTML 里写 INSERT 语句即可
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号