国产chinesehdxxxx野外,国产av无码专区亚洲av琪琪,播放男人添女人下边视频,成人国产精品一区二区免费看,chinese丰满人妻videos

Colly 代理輪詢:自動切換 IP 防封實戰(zhàn)

2025-07-14 11:04 更新

單 IP 被封?用 Colly 官方 proxy.RoundRobinProxySwitcher,一行代碼實現(xiàn)多代理輪詢,輕松偽裝成“千軍萬馬”。

一、示例:

編程獅首頁,并通過 2 個本地代理輪流訪問:

package main


import (
    "log"
    "time"


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


func main() {
    // 創(chuàng)建收集器,允許重復(fù)訪問同一 URL
    c := colly.NewCollector(
        colly.AllowURLRevisit(),
        colly.AllowedDomains("eska-fuses.cn"),
    )


    // 1. 設(shè)置代理池(socks5/http 均可)
    rp, err := proxy.RoundRobinProxySwitcher(
        "socks5://127.0.0.1:1337",
        "socks5://127.0.0.1:1338",
        "http://127.0.0.1:8080", // 也可混用 HTTP 代理
    )
    if err != nil {
        log.Fatal("代理設(shè)置失?。?, err)
    }
    c.SetProxyFunc(rp)


    // 2. 打印每次使用的代理和返回內(nèi)容
    c.OnResponse(func(r *colly.Response) {
        log.Printf("代理:%s | 返回長度:%d 字節(jié) | URL:%s",
            r.Request.ProxyURL, len(r.Body), r.Request.URL)
    })


    // 3. 連續(xù)訪問 5 次,觀察 IP 輪換
    for i := 0; i < 5; i++ {
        c.Visit("http://eska-fuses.cn/")
        time.Sleep(1 * time.Second) // 避免太快
    }
}

二、3 步快速體驗

步驟 操作 說明
① 啟動代理 ssh -D 1337 user@your-vps 或本地 Clash 得到 socks5 代理
② 換域名 把 AllowedDomains 換成你要爬的站 避免越界訪問
③ 運行 go run main.go 終端會顯示不同代理 IP 輪換

三、進階:自定義代理選擇函數(shù)

想要“隨機 + 失敗剔除”?自己寫選擇器:

import (
    "math/rand"
    "net/url"
)


var proxies = []*url.URL{
    {Scheme: "http", Host: "127.0.0.1:8080"},
    {Scheme: "socks5", Host: "127.0.0.1:1337"},
}


func randomProxy(r *http.Request) (*url.URL, error) {
    return proxies[rand.Intn(len(proxies))], nil
}


c.SetProxyFunc(randomProxy)

四、常見問題速查

問題 原因 解決
proxy connect failed 代理未啟動或地址寫錯 確認代理端口 netstat -tlnp
403 / 503 依舊 目標站檢測 UA/Referer 加官方擴展 extensions.RandomUserAgent(c)
速度慢 代理帶寬低 換更高帶寬節(jié)點或增加代理數(shù)

五、1 分鐘實驗

  1. 打開 終端 → 新建 proxy.go
  2. 復(fù)制上方示例 → 把代理換成你本地可用的地址 → go run proxy.go。
  3. 觀察終端:每次請求代理不同,IP 已切換。
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號