Colly 爬取深度限制:精準(zhǔn)控制爬蟲范圍

2025-07-11 17:47 更新

爬蟲任務(wù)太大怕失控?用 CollyMaxDepth 限制爬取深度,就像給爬蟲裝上“緊箍咒”,輕松精準(zhǔn)控制范圍。

一、示例:

package main


import (
    "fmt"


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


func main() {
    // 創(chuàng)建默認(rèn)收集器,限制最大深度為 2
    c := colly.NewCollector(
        colly.MaxDepth(2), // 只爬取首頁 + 一層鏈接
    )


    // 每次發(fā)現(xiàn) <a href="..."> 標(biāo)簽就打印并繼續(xù)訪問
    c.OnHTML("a[href]", func(e *colly.HTMLElement) {
        link := e.Attr("href")
        fmt.Println("發(fā)現(xiàn)鏈接:", link)


        // 自動(dòng)補(bǔ)全絕對(duì)路徑后再訪問
        absoluteURL := e.Request.AbsoluteURL(link)
        e.Request.Visit(absoluteURL)
    })


    // 從編程獅首頁開始
    c.Visit("http://m.o2fo.com/")
}

運(yùn)行結(jié)果(只爬取兩層):

發(fā)現(xiàn)鏈接: http://m.o2fo.com/go
發(fā)現(xiàn)鏈接: http://m.o2fo.com/python
...

二、深度限制的 3 個(gè)關(guān)鍵點(diǎn)

關(guān)鍵點(diǎn) 說明 示例代碼
設(shè)置深度 通過 colly.MaxDepth(n) 設(shè)置最大爬取深度 colly.MaxDepth(2)
深度含義 0 表示只爬首頁,1 表示爬首頁 + 一層鏈接,依此類推 colly.MaxDepth(0) 只爬首頁
動(dòng)態(tài)調(diào)整 可以在運(yùn)行時(shí)動(dòng)態(tài)調(diào)整深度 c.MaxDepth = 3

三、完整實(shí)戰(zhàn):爬取編程獅首頁及兩層鏈接

假設(shè)你想爬取編程獅首頁及其兩層鏈接,完整代碼如下:

package main


import (
    "fmt"


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


func main() {
    // 創(chuàng)建默認(rèn)收集器,限制最大深度為 2
    c := colly.NewCollector(
        colly.MaxDepth(2), // 只爬取首頁 + 一層鏈接
    )


    // 每次發(fā)現(xiàn) <a href="..."> 標(biāo)簽就打印并繼續(xù)訪問
    c.OnHTML("a[href]", func(e *colly.HTMLElement) {
        link := e.Attr("href")
        fmt.Println("發(fā)現(xiàn)鏈接:", link)


        // 自動(dòng)補(bǔ)全絕對(duì)路徑后再訪問
        absoluteURL := e.Request.AbsoluteURL(link)
        e.Request.Visit(absoluteURL)
    })


    // 從編程獅首頁開始
    c.Visit("http://m.o2fo.com/")
}

四、常見問題速查

現(xiàn)象 原因 解決方法
爬取深度不夠 MaxDepth 設(shè)置太小 增大 MaxDepth 值
爬取深度太深 MaxDepth 設(shè)置太大 減小 MaxDepth 值
無法訪問某些鏈接 鏈接不在 AllowedDomains 中 檢查 AllowedDomains 是否包含目標(biāo)域名

五、1 分鐘實(shí)驗(yàn)

  1. 打開 Go 環(huán)境 → 新建 main.go。
  2. 復(fù)制上方代碼 → 運(yùn)行。
  3. 觀察終端:只爬取兩層鏈接,不會(huì)無限深入。

標(biāo)題:Colly 爬取深度限制:精準(zhǔn)控制爬蟲范圍(小白適配版)| 編程獅教程
描述
關(guān)鍵詞:Colly 爬取深度、MaxDepth、爬蟲范圍控制、編程獅

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)