Heim  >  Artikel  >  Backend-Entwicklung  >  So ignorieren Sie das Drucken, wenn die maximale Tiefengrenze erreicht ist

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

WBOY
WBOYnach vorne
2024-02-09 15:45:10656Durchsuche

如何忽略打印达到最大深度限制 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

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

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

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

go run . 2>&1 >log.txt

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

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

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen