Heim > Backend-Entwicklung > Golang > Go Colly – Greifen Sie in der for-Schleife auf die URL zu

Go Colly – Greifen Sie in der for-Schleife auf die URL zu

王林
Freigeben: 2024-02-06 10:51:03
nach vorne
1014 Leute haben es durchsucht

Go Colly - 在 for 循环中访问 URL

Frageninhalt

Ich habe ein Beispiel, bei dem ich mehrere Links besuchen und daraus Informationen extrahieren sollte. Das Problem ist, dass meine Besuche zunehmen, wenn ich „colly.Visit(URL)“ verwende. Beispiel:

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)
    }
}
Nach dem Login kopieren

Dies wird gedruckt:

Visiting categories http://cate1  
Visiting categories http://cate2
Visiting categories http://cate2
Visiting categories http://cate3
Visiting categories http://cate3
Visiting categories http://cate3
Nach dem Login kopieren

Ich habe versucht, colly nach jeder Iteration zu initialisieren, und das hat gut funktioniert – dann war die Reihenfolge: Zugriffskategorie http://cate1, Zugriffskategorie http://cate2, Zugriffskategorie http://cate3 Aber wenn ich das tue, verliere ich meine Anmeldesitzung. Irgendwelche Vorschläge?


Richtige Antwort


Sie fügen einen neuen OnRequest Handler für jede Schleifeniteration hinzu. Konfigurieren Sie den Handler außerhalb der Schleife:

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)
  }
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonGo Colly – Greifen Sie in der for-Schleife auf die URL zu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage