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