我有一個例子,我應該訪問多個連結並從中提取資訊。問題是,當我使用“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中文網其他相關文章!