Maison  >  Article  >  développement back-end  >  Comment Go Colly trouve-t-il l’élément demandé ?

Comment Go Colly trouve-t-il l’élément demandé ?

PHPz
PHPzavant
2024-02-13 13:57:08794parcourir

Go Colly如何找到请求的元素?

l'éditeur php Banana vous présentera un puissant framework de robot d'exploration Web - Go Colly. Go Colly est un framework de robot d'exploration Web léger développé sur la base du langage Go. Il présente les caractéristiques de hautes performances, de concurrence élevée et d'expansion facile. Lorsque nous utilisons Go Colly pour l'exploration Web, nous avons souvent besoin de trouver les éléments demandés en fonction de nos besoins. Alors, comment Go Colly trouve-t-il l’élément demandé ? Ensuite, nous y répondrons un par un.

Contenu de la question

J'essaie d'utiliser colly pour qu'une table spécifique parcoure son contenu, mais la table n'est pas reconnue, c'est ce que j'ai jusqu'à présent.

package main

import (
    "fmt"
    
    "github.com/gocolly/colly"
)

func main() {
    c := colly.NewCollector(
        colly.AllowedDomains("wikipedia.org", "en.wikipedia.org"),
    )
    
    links := make([]string, 0)

    c.OnHTML("div.mw-parser-output", func(e *colly.HTMLElement) {
        
        e.ForEach("table.wikitable.sortable.jquery-tablesorter > tbody > tr", func(_ int, elem *colly.HTMLElement) {
            fmt.Println(elem.ChildAttr("a[href]", "href"))
            links = append(links, elem.ChildAttr("a[href]", "href"))
        })
    })
    
    c.OnRequest(func(r *colly.Request) {
        fmt.Println("Visiting", r.URL.String())
    })

    c.Visit("https://en.wikipedia.org/wiki/List_of_countries_and_dependencies_by_population")
    fmt.Println("Found urls for", len(links), "countries.")
}

Je dois parcourir tous les éléments tr du tableau.

Solution

Il s'avère que le nom de la classe est en fait wikitable.sortable,即使在 chrome 控制台中显示为 wikitable sortable jquery-tablesorter. Je ne sais pas pourquoi les noms sont si différents, mais cela a résolu mon problème.

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