Go Colly - 在 for 循环中访问 URL
admin 阅读:133 2024-03-22

我有一个例子,我应该访问多个链接并从中提取信息。问题是,当我使用“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)
}
}声明
1、部分文章来源于网络,仅作为参考。 2、如果网站中图片和文字侵犯了您的版权,请联系1943759704@qq.com处理!



