W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
復制即可跑!用 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("無法創(chuàng)建文件 %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. 創(chuàng)建收集器
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)
}
步驟 | 命令 | 說明 |
---|---|---|
① 安裝依賴 | go mod init coin && go get github.com/gocolly/colly/v2 |
自動拉庫 |
② 保存文件 | 復制上方代碼 → main.go |
零配置 |
③ 一鍵運行 | go run main.go |
終端出現 ? 抓取完成 |
名稱 | 符號 | 價格(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% |
... | ... | ... | ... | ... | ... | ... | ... |
癥狀 | 原因 | 解決 |
---|---|---|
無數據 / 0 行 | 頁面改版,選擇器失效 | 用瀏覽器 F12 → 復制新選擇器 |
文件亂碼 | Windows 用 Excel 打開 | CSV 默認 UTF-8;Excel 數據→自文本導入 |
被 403 攔截 | 缺少 UA 或限速 | 加 colly.UserAgent("Mozilla/5.0...") 與 Limit |
目標 | 改動一行 |
---|---|
改爬 漲幅榜 | 把 URL 換成 https://coinmarketcap.com/gainers-losers/ |
保存 JSON | 用 encoding/json 替換 encoding/csv |
存 MySQL | 在 OnHTML 里寫 INSERT 語句即可 |
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯系方式:
更多建議: