Maison  >  Article  >  développement back-end  >  Go Colly - Accédez à l'URL dans la boucle for

Go Colly - Accédez à l'URL dans la boucle for

王林
王林avant
2024-02-06 10:51:03968parcourir

Go Colly - 在 for 循环中访问 URL

Contenu de la question

J'ai un exemple dans lequel je devrais visiter plusieurs liens et en extraire des informations. Le problème est que lorsque j'utilise "colly.Visit(URL)", mes visites augmentent. Exemple :

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)
    }
}

Cela imprimera :

Visiting categories http://cate1  
Visiting categories http://cate2
Visiting categories http://cate2
Visiting categories http://cate3
Visiting categories http://cate3
Visiting categories http://cate3

J'ai essayé d'initialiser Colly après chaque itération et cela a bien fonctionné - alors l'ordre était : catégorie d'accès http://cate1, catégorie d'accès http://cate2, catégorie d'accès http://cate3 Mais en faisant cela, je perdrai ma session de connexion. Aucune suggestion?


Bonne réponse


Vous ajoutez un nouveau OnRequest gestionnaire pour chaque itération de boucle. Configurez le gestionnaire en dehors de la boucle :

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)
  }
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer