colly für Go: Vollständiges Tutorial & Leitfaden

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

colly für Go: Das ultimative Tutorial für Web Scraping

1. Was ist colly und warum brauchst du es?

Colly ist eine leistungsstarke und hochperformante Bibliothek für Web Scraping (Datenparsing) in der Programmiersprache Go. Sie bietet ein sauberes, asynchrones und leicht erweiterbares Interface, um Daten von Websites zu extrahieren. Colly basiert auf den Paketen net/http und goquery (dem jQuery-Äquivalent für Go), was Entwicklern erlaubt, die vertraute Syntax von CSS-Selektoren zur Navigation im HTML-Dokument zu nutzen.

Warum ist diese Bibliothek wichtig? In der modernen Welt sind Daten das neue Öl. Web Scraping automatisiert die Datensammlung: Preisüberwachung bei Wettbewerbern, News-Aggregation, SEO-Analyse, Aufbau von Produktdatenbanken und vieles mehr. Colly sticht durch seine Geschwindigkeit (asynchrone Architektur mit Goroutinen), integriertes Caching, automatisches Request-Timing (zur Einhaltung von Website-Richtlinien) und ein flexibles Callback-System hervor.

Die Bibliothek eignet sich perfekt für kleine Skripte ebenso wie für große, verteilte Datensammelsysteme. Dank der strengen Typisierung von Go und dem Fehlen einer Laufzeitumgebung (im Gegensatz zu Python/Node.js) werden colly-Anwendungen in eine einzige Binärdatei kompiliert, was Deployment und Skalierung vereinfacht.

2. Installation

Für die Installation von colly wird der standardmäßige Go-Paketmanager verwendet. Stelle sicher, dass Go in Version 1.18 oder höher installiert ist.

go get -u github.com/gocolly/colly/v2

Nach der Ausführung des Befehls wird die Bibliothek zu deiner go.mod-Datei hinzugefügt. Es wird außerdem empfohlen, goquery für die HTML-Verarbeitung zu installieren (es wird automatisch als Abhängigkeit hinzugefügt):

go get -u github.com/PuerkitoBio/goquery

3. Schnellstart: Minimalbeispiel

Erstellen wir einen einfachen Scraper, der die Überschriften (<h1>-Tags) von der Startseite der Website example.com ausgibt.

package main

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

func main() {
    // Neuen Collector erstellen
    c := colly.NewCollector()

    // Handler für besuchte Seiten
    c.OnHTML("h1", func(e *colly.HTMLElement) {
        fmt.Println("Überschrift:", e.Text)
    })

    // Fehlerhandler
    c.OnError(func(r *colly.Response, err error) {
        fmt.Println("Fehler:", err)
    })

    // Parsing starten
    c.Visit("https://example.com")
}

Starte den Code mit go run main.go. Du wirst die Überschrift der Seite sehen. Dies ist die minimale Grundlage, von der aus du starten kannst.

4. Wichtige Methoden und Funktionen (mindestens 8)

Hier sind die wichtigsten colly-Methoden, die 90% der Web-Scraping-Aufgaben abdecken.

4.1 colly.NewCollector()

Signatur: func NewCollector(options ...func(*Collector)) *Collector

Funktion: Erstellt eine neue Collector-Instanz – das Hauptobjekt zur Steuerung des Parsings. Akzeptiert optionale Konfigurationsfunktionen.

// Erstellung mit Konfiguration
c := colly.NewCollector(
    colly.AllowedDomains("example.com"), // Nur example.com erlauben
    colly.CacheDir("./cache"),           // Requests cachen
)

4.2 Collector.Visit()

Signatur: func (c *Collector) Visit(URL string) error

Funktion: Initiiert einen HTTP-GET-Request an die angegebene URL. Dies ist der Einstiegspunkt für das Parsing.

err := c.Visit("https://exa                    

Empfehlungen