W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
官方示例只有 20 行?把它拆成 中文注釋 + 擴(kuò)展模板,讓你 3 分鐘 不僅拿下 Shopify,還能一鍵爬任意站點(diǎn)的 sitemap.xml!
/sitemap.xml
(或 /sitemap-*.xml
) //urlset/url/loc
取出所有 <loc>
標(biāo)簽 package main
import (
"fmt"
"os"
"github.com/gocolly/colly/v2"
)
func main() {
if len(os.Args) != 2 {
fmt.Println("用法: go run main.go <域名>")
return
}
domain := os.Args[1] // 例如 shopify.com
var urls []string
// 1. 創(chuàng)建收集器,僅允許目標(biāo)域名
c := colly.NewCollector(
colly.AllowedDomains(domain, "www."+domain),
)
// 2. 用 XPath 解析 <loc> 標(biāo)簽
c.OnXML("http://urlset/url/loc", func(e *colly.XMLElement) {
urls = append(urls, e.Text)
})
// 3. 開始抓取 sitemap.xml
c.Visit("https://www." + domain + "/sitemap.xml")
// 4. 輸出統(tǒng)計
fmt.Printf("? 共抓取 %d 條 URL\n", len(urls))
for _, u := range urls {
fmt.Println(u)
}
}
步驟 | 命令/操作 | 說明 |
---|---|---|
① 安裝依賴 | go mod init sitemap && go get github.com/gocolly/colly/v2 |
一鍵拉庫 |
② 保存文件 | 復(fù)制上方代碼 → main.go |
零配置 |
③ 一鍵運(yùn)行 | go run main.go shopify |
輸出 Shopify 全站 URL |
? 共抓取 312 條 URL
https://www.shopify.com/
https://www.shopify.com/blog
https://www.shopify.com/pricing
...
需求 | 改動 1 行 |
---|---|
爬索引 sitemap | 把 Visit 換成 https://www.xxx.com/sitemap_index.xml |
同時抓多張 sitemap | 用 c.OnXML("http://sitemap/loc", ...) 遞歸 |
保存 CSV | 把 fmt.Println 換成 csv.Writer |
癥狀 | 原因 | 解決 |
---|---|---|
0 條 URL | 域名無 sitemap | 先訪問 /robots.txt 找真實 sitemap 路徑 |
403 被攔截 | 缺 User-Agent | 加 colly.UserAgent("...") |
XPath 匹配不到 | 結(jié)構(gòu)變化 | 用瀏覽器 F12 → Copy → XPath 重新定位 |
sitemap.go
domain
換成你的目標(biāo)站 go run sitemap.go yourdomain.com
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: