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

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

王林
Libérer: 2024-02-06 10:51:03
avant
1017 Les gens l'ont consulté

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)
    }
}
Copier après la connexion

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
Copier après la connexion

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)
  }
}
Copier après la connexion

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!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal