So ignorieren Sie das Drucken, wenn die maximale Tiefengrenze erreicht ist

WBOY
Freigeben: 2024-02-09 15:45:10
nach vorne
702 Leute haben es durchsucht

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

Der PHP-Editor Strawberry stellt Ihnen heute eine Methode vor, mit der wir das Problem des Erreichens der maximalen Tiefengrenze beim Drucken bei Verwendung des Go-Colly-Crawler-Frameworks ignorieren können. Beim Crawlen von Webseitendaten stoßen wir normalerweise auf Situationen, in denen die Struktur tief verschachtelt ist und die Standarddrucktiefenbeschränkung des Colly-Frameworks möglicherweise nicht alle Daten vollständig anzeigen kann. Durch Festlegen der Debugging-Optionen des Colly-Frameworks können wir dieses Problem leicht lösen und eine umfassendere Datenanzeige erhalten. Als Nächstes lernen wir die einzelnen Schritte kennen!

Frageninhalt

Ich habe einen Go-Colly-Crawler und versuche, viele Websites zu crawlen. Auf meinem Terminal wird viel gedruckt:

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

Das macht es für mich schwierig, einige der von mir platzierten Aufdrucke zu lesen. Ich frage mich, ob es eine Möglichkeit gibt, das Drucken im Terminal zu ignorieren. Danke

Die Lösung

达到最大深度限制 ist colly.errmax Depth. In Ihrem Projekt muss Code wie dieser vorhanden sein:

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

// ...

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

Wenn Sie nicht möchten, dass dieser Fehler protokolliert wird, fügen Sie eine einfache Prüfung hinzu, um ihn auszuschließen:

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

Eine andere Möglichkeit besteht darin, die Ausgabe in eine Datei umzuleiten:

go run . 2>&1 >log.txt
Nach dem Login kopieren

Oder verwenden Sie tee, um die Ausgabe in eine Datei und auf stdout zu kopieren:

go run . 2>&1 | tee log.txt
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonSo ignorieren Sie das Drucken, wenn die maximale Tiefengrenze erreicht ist. 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