Maison >développement back-end >Golang >Comment ignorer l'impression atteignant la limite de profondeur maximale

Comment ignorer l'impression atteignant la limite de profondeur maximale

WBOY
WBOYavant
2024-02-09 15:45:10738parcourir

如何忽略打印达到最大深度限制 go colly

L'éditeur PHP Strawberry vous présentera aujourd'hui une méthode qui peut nous aider à ignorer le problème de l'impression atteignant la limite de profondeur maximale lors de l'utilisation du framework go colly crawler. Lors du processus d'exploration des données d'une page Web, nous rencontrons généralement des situations dans lesquelles la structure est profondément imbriquée et la limite de profondeur d'impression par défaut du framework Colly peut ne pas être en mesure d'afficher entièrement toutes les données. En définissant les options de débogage du framework colly, nous pouvons facilement résoudre ce problème et obtenir un affichage des données plus complet. Ensuite, apprenons les étapes spécifiques !

Contenu de la question

J'ai un robot d'exploration Go Colly et j'essaie d'explorer de nombreux sites Web. Sur mon terminal ça imprime beaucoup :

2023/05/30 02:22:56 Max depth limit reached
2023/05/30 02:22:56 Max depth limit reached
2023/05/30 02:22:56 Max depth limit reached
2023/05/30 02:22:56 Max depth limit reached
2023/05/30 02:22:56 Max depth limit reached
2023/05/30 02:22:56 Max depth limit reached
2023/05/30 02:22:56 Max depth limit reached

Cela me rend difficile la lecture de certaines des impressions que je place. Je me demande s'il existe un moyen d'ignorer l'impression de ceci dans le terminal. Merci

La solution

达到最大深度限制 est colly.errmaxdegree. Vous devez avoir un code comme celui-ci dans votre projet :

c := colly.newcollector(colly.maxdepth(5))

// ...

if err := c.visit("http://go-colly.org/"); err != nil {
    log.println(err)
}

Si vous ne souhaitez pas que cette erreur soit enregistrée, ajoutez une simple vérification pour l'exclure :

c := colly.newcollector(colly.maxdepth(5))

// ...

if err := c.visit("http://go-colly.org/"); err != nil {
    // log the error only when the error is not errmaxdepth.
    if err != colly.errmaxdepth {
        log.println(err)
    }
}

Une autre option consiste à rediriger la sortie vers un fichier :

go run . 2>&1 >log.txt

Ou utilisez tee pour copier la sortie dans un fichier et sur la sortie standard :

go run . 2>&1 | tee log.txt

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