W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎勵
零依賴、零配置,復(fù)制即可運(yùn)行!
package main
import (
"fmt"
"github.com/gocolly/colly/v2"
)
func main() {
// 1. 創(chuàng)建收集器,只允許訪問編程獅域名
c := colly.NewCollector(
colly.AllowedDomains("eska-fuses.cn", "w3cschool.cn"),
)
// 2. 發(fā)現(xiàn) <a href="..."> 標(biāo)簽就打印并繼續(xù)訪問
c.OnHTML("a[href]", func(e *colly.HTMLElement) {
link := e.Attr("href")
fmt.Printf("發(fā)現(xiàn)鏈接:%s → %s\n", e.Text, link)
// 自動補(bǔ)全絕對路徑后再訪問
absoluteURL := e.Request.AbsoluteURL(link)
c.Visit(absoluteURL)
})
// 3. 每次請求前打印日志
c.OnRequest(func(r *colly.Request) {
fmt.Println("正在訪問:", r.URL.String())
})
// 4. 從編程獅首頁開始
c.Visit("http://eska-fuses.cn/")
}
go mod init w3c-demo
go get github.com/gocolly/colly/v2
main.go
。go run main.go
終端會不斷輸出:
正在訪問: http://eska-fuses.cn/
發(fā)現(xiàn)鏈接:Go 教程 → /go
正在訪問: http://eska-fuses.cn/go
...
疑問 | 一句話解答 |
---|---|
為什么只爬這兩個域名? | AllowedDomains 防止爬到外站。 |
如何只爬 2 層? | 加 c.MaxDepth = 2 。 |
如何停止無限爬? | Ctrl+C 或加 MaxDepth 。 |
打開 Go 環(huán)境 → 新建 main.go
→ 粘貼代碼 → 運(yùn)行,立刻看到自家首頁鏈接滾滾而來!
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: