首頁 > 後端開發 > Golang > 主體

Go Colly - 在 for 迴圈中存取 URL

王林
發布: 2024-02-06 10:51:03
轉載
980 人瀏覽過

Go Colly - 在 for 循环中访问 URL

問題內容

我有一個例子,我應該訪問多個連結並從中提取資訊。問題是,當我使用“colly.Visit(URL)”時,我的訪問量會增加。 範例:

package main

import (
    "fmt"

    "github.com/gocolly/colly"
)

func main() {

    CATETORIES := []string{
        "cate1",
        "cate2",
        "cate3",
    }

    c := colly.NewCollector()

    for _, cate := range CATETORIES {

        c.OnRequest(func(r *colly.Request) {
            fmt.Println("Visiting categories", r.URL)
        })

        c.Visit(cate)
    }
}
登入後複製

這將會列印:

Visiting categories http://cate1  
Visiting categories http://cate2
Visiting categories http://cate2
Visiting categories http://cate3
Visiting categories http://cate3
Visiting categories http://cate3
登入後複製

我嘗試在每次迭代後初始化 colly,效果很好 - 然後順序是:訪問類別 http://cate1、訪問類別 http://cate2、訪問類別 http://cate3 但這樣做我會失去我的登入會話.. 有什麼建議嗎?


正確答案


您正在為每個循環迭代新增一個 OnRequest 處理程序。在循環外配置處理程序:

func main() {

  CATETORIES := []string{
    "cate1",
    "cate2",
    "cate3",
  }

  c := colly.NewCollector()

  c.OnRequest(func(r *colly.Request) {
    fmt.Println("Visiting categories", r.URL)
  })

  for _, cate := range CATETORIES {
    c.Visit(cate)
  }
}
登入後複製

以上是Go Colly - 在 for 迴圈中存取 URL的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:stackoverflow.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!