Start / n8n-Workflow-Vorlagen / Täglich die Top GitHub Trending Repositories scrapen

Täglich die Top GitHub Trending Repositories scrapen

Scrape Today's Github Trend 13 Top Repositories

Scrapt und verarbeitet automatisch die Top-Repositories von GitHubs Trending-Seite und extrahiert wichtige Details wie Autor, Titel, Beschreibung und URL.

Manuell7 KnotenEntwickler-Toolsgithubscraperentwickler

Über diesen Workflow

Analyse des Workflows zum Abrufen der heutigen GitHub Trending Repositories

Diese n8n Workflow-Vorlage wurde entwickelt, um automatisch strukturierte Daten von der GitHub Trending-Seite (https://github.com/trending) zu scrapen und zu extrahieren, insbesondere die Top-Repositories, die für den aktuellen Tag hervorgehoben werden. Sie nutzt HTML-Parsing-Fähigkeiten, um die öffentliche HTML-Struktur von GitHub zu durchlaufen, relevante Repository-Elemente zu isolieren und rohe Scraping-Inhalte in eine saubere, nutzbare Liste von Repository-Details umzuwandeln, einschließlich Autor, Name, Beschreibung und direkter URL.

Was der Workflow tut

Der Workflow wird manuell gestartet, ruft den HTML-Inhalt der GitHub Trending-Seite ab, isoliert den Hauptcontainer, der die Repository-Listen enthält, extrahiert einzelne Repository-Karten, parst wichtige Metadaten (wie Repository-Pfad, Programmiersprache und Beschreibung) und formatiert schließlich jeden Eintrag in ein standardisiertes JSON-Objekt mit angereicherten Feldern wie author, title, url und einem zeitgestempelten created_at. Das Ergebnis ist eine Liste von bis zu 25 Trending-Repositories (wie von GitHub angezeigt), bereit für die nachgelagerte Verwendung, wie z. B. Datenbankeinfügung, Benachrichtigungen oder Integration mit anderen Tools.

Hauptfunktionen und Fähigkeiten

  • Web Scraping ohne APIs: Umgeht die Notwendigkeit von GitHub API-Tokens durch direktes Scraping von öffentlichem HTML.
  • Dynamische Datenerfassung: Verwendet CSS-Selektoren, um Repository-Elemente zuverlässig anzusprechen, auch wenn sich das Layout von GitHub moderat weiterentwickelt.
  • Strukturierte Ausgabe: Konvertiert unstrukturierte HTML in konsistente JSON-Datensätze mit normalisierten Feldern.
  • Manuelle Auslösung: Konzipiert für die On-Demand-Ausführung über die Schaltfläche "Workflow testen", ideal für geplante oder Ad-hoc-Läufe.
  • Textbereinigung: Enthält Optionen zum Entfernen von Leerzeichen und zur Bereinigung extrahierter Texte für bessere Lesbarkeit und Konsistenz.
  • URL-Konstruktion: Erstellt dynamisch gültige GitHub-Repository-URLs aus den gescrapten Pfaden.

Hauptknoten und ihre Zwecke

  1. Beim Klicken auf „Workflow testen“ (manualTrigger)

    • Dient als Einstiegspunkt; löst den Workflow manuell während des Testens oder der Ausführung aus.
  2. Anfrage an Github Trend (httpRequest)

    • Sendet eine HTTP-GET-Anfrage an https://github.com/trending, um das rohe HTML der Trending-Seite abzurufen.
  3. Box extrahieren (html node)

    • Parst die vollständige HTML-Antwort und extrahiert den Inhalt des ersten <div class="Box">, der die Hauptliste der Trending-Repositories enthält.
  4. Alle Repositories extrahieren (html node)

    • Verarbeitet das extrahierte "Box"-HTML und isoliert jedes <article class="Box-row">-Element (das einzelne Repositories darstellt) in einem Array von HTML-Snippets mit returnArray: true.
  5. In eine Liste umwandeln (splitOut node)

    • Teilt das Array von Repository-HTML-Snippets in einzelne Elemente auf, was die Verarbeitung von Element zu Element in nachfolgenden Knoten ermöglicht.
  6. Repository-Daten extrahieren (html node)

    • Extrahiert für jedes Repository-HTML-Snippet drei wichtige Informationen:
      • repository: Der Autor/Repo-Pfad aus dem <a class="Link">-Element.
      • language: Programmiersprache aus <span class="d-inline-block">.
      • description: Kurze Projektbeschreibung aus dem <p>-Tag.
  7. Ergebnisvariablen setzen (set node)

    • Transformiert und reichert die extrahierten Daten an:
      • Teilt repository in author und title auf.
      • Konstruiert eine gültige url unter Verwendung des Repository-Pfads.
      • Fügt einen created_at-Zeitstempel mit {{$now}} hinzu.
      • Behält die ursprüngliche description bei.
      • Behält alle anderen Felder über includeOtherFields: "=" bei.

Anwendungsfälle und Vorteile

  • Entwicklerforschung: Schnelles Entdecken neuer oder aufstrebender Open-Source-Projekte.
  • Automatisierte Überwachung: Tägliche Trends für Wettbewerbsanalysen oder Inspiration verfolgen.
  • Content-Aggregation: Trending-Repos in Dashboards, Newsletter oder interne Tools einspeisen.
  • Bildungszwecke: Web-Scraping-Techniken mit der visuellen Automatisierung von n8n erlernen.
  • Kostengünstige Alternative: Vermeidet Ratenbegrenzungen oder Authentifizierungsanforderungen der offiziellen GitHub-API für öffentliche Daten.

Schritt-für-Schritt-Workflow-Logik

  1. Auslöser: Benutzer klickt auf "Workflow testen", um den manuellen Auslöser zu aktivieren.
  2. Seite abrufen: Der httpRequest-Knoten ruft das vollständige HTML von https://github.com/trending ab.
  3. Container isolieren: Der Extract Box-Knoten verwendet div.Box, um den primären Trending-Bereich zu erfassen.
  4. Repository-Karten extrahieren: Der Extract all repositories-Knoten wählt alle article.Box-row-Elemente aus und gibt sie als Array von HTML-Strings unter dem Feld repositories zurück.
  5. In Elemente aufteilen: Der Turn to a list-Knoten wandelt das repositories-Array in einzelne Workflow-Elemente für die parallele oder sequentielle Verarbeitung um.
  6. Metadaten parsen: Für jedes Repository-Element wendet der Extract repository data-Knoten CSS-Selektoren an, um Folgendes abzurufen:
    • Repository-Pfad (z. B. "n8n-io/n8n")
    • Text des Sprach-Badges
    • Beschreibungsparagraph
  7. Anreichern & Standardisieren: Der Set Result Variables-Knoten:
    • Teilt den Repository-Pfad in author und title auf
    • Erstellt eine klickbare GitHub-URL
    • Fügt den aktuellen Zeitstempel hinzu
    • Bereinigt und weist alle Felder einer einheitlichen Struktur zu
  8. Ausgabe: Die endgültige Ausgabe ist eine Liste von strukturierten Repository-Objekten, bereit für den Export, die Speicherung oder weitere Automatisierung.

Dieser Workflow ist ein Beispiel für effizientes No-Code-Web-Scraping mit den nativen HTML-Parsing- und Datenmanipulationsknoten von n8n, das umsetzbare Erkenntnisse aus öffentlich verfügbaren GitHub-Daten liefert.

So geht’s: JSON herunterladen und in n8n „Aus Datei importieren“ wählen.