如何将url列表添加到gocolly队列?

如何将url列表添加到gocolly队列?,go,web-scraping,queue,Go,Web Scraping,Queue,我想抓取一个使用gocolly的url列表 func main() { fileName := "output.txt" var result string f, err := os.Create(fileName) if err != nil { panic(err) } defer func() { if err := f.Close(); err != nil { panic(err)

我想抓取一个使用gocolly的url列表

func main() {
    fileName := "output.txt"
    var result string

    f, err := os.Create(fileName)
    if err != nil {
        panic(err)
    }
    defer func() {
        if err := f.Close(); err != nil {
            panic(err)
        }
    }()

    rows := ReadInput()
    q := AddUrl(rows)

    // Instantiate default collector
    c := colly.NewCollector()

    c.OnHTML("body", func(e *colly.HTMLElement) {
        result = result + e.Text +"\n"
    })

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

    // Set error handler
    c.OnError(func(r *colly.Response, err error) {
        fmt.Println("Request URL:", r.Request.URL, "failed with response:", r, "\nError:", err)
    })

    q.Run(c)

    f.WriteString(result)

    log.Printf("Scraping done, Please check file %q for results\n", fileName)
}

func ReadInput() []string{
    // Read from file
    b, err := ioutil.ReadFile("input.txt") // just pass the file name
    if err != nil {
        fmt.Print(err)
    }
    str := string(b) // convert content to a 'string'

    // split each row
    rows := strings.Split(str,"\n")
    return rows
}
但当我尝试将url从字符串片段(url)添加到gocolly队列时,它并没有添加所有url,只是添加了最后一个url

func AddUrl(rows []string) *queue.Queue {
    Q, _ := queue.New(
        2, // Number of consumer threads
        &queue.InMemoryQueueStorage{MaxSize: 10000},
    )
    for _,url:=range rows{
        Q.AddURL(url)
    }
    return Q
}
如果我添加url Maualy,那么它就可以完美地工作,而不是循环,但是使用循环,它只添加最后一个元素

func AddUrl(rows []string) *queue.Queue {
    Q, _ := queue.New(
        2, // Number of consumer threads
        &queue.InMemoryQueueStorage{MaxSize: 10000},
    )
    Q.AddURL("http://bakeshopva.com") 
    Q.AddURL("http://zekescoffeedc.com")
    return Q
}

您确定行包含多个不同的值吗?ReadInput做什么?ReadInput只是从txt文件中读取一些url。行将包含一些字符串片段(url)。