Show HN: MarkdownDown organisiert und konvertiert Webseiten in Markdown
(markdowndown.vercel.app)- MarkdownDown ist ein Tool, das beliebige Webseiten in saubere Markdown-Dokumente umwandelt
- Es unterstützt im Konvertierungsergebnis den Download von Bildern, sodass lokal gespeicherte Bilder in Markdown verlinkt werden können
- Mit der Option Nicht-Inhalts-Elemente entfernen lassen sich Elemente reduzieren, die nichts mit dem Hauptinhalt zu tun haben
- Optional kann auf das Markdown-Ergebnis ein GPT Filter angewendet werden
- Nützlich für Nutzer, die Webseit Inhalte als Markdown archivieren oder auch Bilder mit organisieren möchten
Webseiten als Markdown aufbereiten
- MarkdownDown konvertiert Webseiten in sauberes Markdown
- Während der Konvertierung können Bilder heruntergeladen und lokale Bildlinks in das Ergebnis aufgenommen werden
Konvertierungsoptionen
-
Fokus auf den Hauptinhalt
- Mit der Option Remove non-content elements werden Elemente entfernt, die kein Inhalt sind
-
Bildverarbeitung
- Mit der Option Download images locally and link them werden Bilder lokal gespeichert und verlinkt
-
GPT Filter anwenden
- Mit der Option Apply GPT Filter on Markdown kann ein GPT Filter auf das Markdown-Ergebnis angewendet werden
1 Kommentare
Meinungen auf Hacker News
Beim Umwandeln von Websites in Markdown gibt es drei unterschiedliche Probleme: den Seiteninhalt vollständig zu erfassen, Werbung und Zusatzinhalte zu entfernen sowie das richtige Layout und die passende Abschnittsformatierung zu erhalten.
Für präzise Inhaltsextraktion und Formatierung funktionieren Lösungen auf Basis von Trafilatura, Newspaper4k und python-readability im Standardzustand am besten; für vollständiges Erfassen passt eine Kombination aus Scraping-Diensten und Selenium gut.
Ich frage mich, was dieses Tool anders oder besser macht. Dieses Feld war eine Weile ziemlich festgefahren, daher würde ich gern hören, was ihr gelernt habt.
Bei der Inhaltsextraktion fand ich den Ansatz der Postlight-Bibliothek ziemlich elegant. Jeder HTML-Node wird anhand von Heuristiken wie Textlänge, Link-Dichte und CSS-Klasse bewertet, und der Node mit der höchsten Punktzahl wird ausgewählt. Beim Bau einer persönlichen Read-it-later-App habe ich das einmal nach Swift portiert.
https://github.com/postlight/parser
Wenn die Prüfung fehlschlägt, wird der Kontext des vollständigen Seiten-HTML gekürzt, mit Pandoc nach Markdown konvertiert, und anschließend extrahiert das LLM den Haupttext aus dem Markdown.
Vercel also – sobald jetzt Traffic kommt, sollte man auf die Rechnung achten. Ich hoffe, ihr nutzt es nicht so, wie Vercel einen ständig dazu verleitet.
Genau wie in dem Bus-Meme: Auf der glücklichen Seite sitzen Nutzer und Vercel, auf der traurigen der Geldbeutel.
Ausgenommen natürlich, wenn man dynamisches Skalieren und Verkleinern braucht.
Für den HN-Traffic wurde nichts Besonderes gemacht, es war einfach eine Standard-Next.js-App.
Bild-Downloads und GPT-basiertes Filtern anzubieten ist eine gute Idee.
Ich habe letztes Jahr ein ähnliches Tool gebaut, aber ohne diese Funktionen: https://url2text.com/
Die UI kann langsam sein, aber auf der Homepage sieht man Beispielausgaben.
Die zugrunde liegende API ist Urlbox’ Website-Screenshot-API; direkt verwendet ist sie deutlich performanter. Man kann JavaScript-gerendertes HTML, Metadaten und Screenshots zusammen mit Markdown in einem Aufruf anfordern: https://urlbox.com/extracting-text
Ergebnisse lassen sich auch direkt in S3-kompatiblem Storage speichern: https://urlbox.com/s3
Oder per Webhook zustellen: https://urlbox.com/webhooks
In einem Nebenprojekt rendere ich mit Urlbox’ Markdown-Funktion über 1 Mio. Mal pro Monat; solches Markdown ist für Embeddings und Prompts deutlich besser geeignet.
Wenn man ganze Websites auf diese Weise scrapen möchte, ist auch dctanners neues Tool einen Blick wert: https://usescraper.com/
Es kostet 0,001 $ pro Seite und nutzt einen Headless-Chrome-Browser. Die Ergebnisse sind schnell, und man zahlt nur nach Nutzung.
Wenn man nur Text braucht, wirkt das ziemlich teuer.
Wenn eine Website eine Cookie-Meldung anzeigt, scheint dieses Tool dort hängen zu bleiben und den eigentlichen Inhalt nicht parsen zu können.
Als ich zum Beispiel https://www.cnbc.com/ eingegeben habe, wurden nur die Cookie-Meldung und der rechtliche Text drumherum als Markdown erzeugt.
Ich hatte Glück, dass ich auf einer ausgereiften API aufbauen konnte, die bereits viele Edge Cases aus verschiedenen Arten von Seiten-Rendering behandelt.
Schon htmltidy und Pandocs HTML→Markdown-Konvertierung waren für mich ausreichend brauchbar.
http://www.html-tidy.org/
https://pandoc.org/
Ich bin zugleich versucht und verängstigt, das gesamte finale Template-HTML damit laufen zu lassen, um verbliebene fehlerhafte Strukturen zu finden. Je nachdem, wie strukturiert die Korrekturen ausfallen, könnte man daraus vielleicht eine Testsuite machen.
Ich habe ebenfalls etwas sehr Ähnliches gebaut: smort.io. Wenn man
smort.io/vor eine beliebige Artikel-URL setzt, kann man sie einfach bearbeiten, kommentieren und teilen.Es funktioniert auch mit ArXiv-Papers.
Der Show-HN-Thread zu Smort ist hier: https://news.ycombinator.com/item?id=30673502
https://jina.ai/reader/
Ich habe es mit einer komplexen Marketing-Seite ausprobiert, und es hat sie sehr gut verarbeitet.
Falls du es teilen kannst: Mich würde interessieren, wie viel Last auf dem Host entsteht. Ist das etwas, das man dauerhaft kostenlos betreiben kann, oder wird es am Ende kosteneffizient ungünstig?
Davon abgesehen ist GPT-4 teuer, aber bisher sind die Kosten vernachlässigbar, daher bin ich zuversichtlich. Ich denke, es lässt sich langfristig betreiben.
Einer der Fälle, in denen man keine AI braucht. Es gibt sehr gut funktionierende Algorithmen, um Inhalte aus Seiten zu extrahieren; eine Implementierung davon ist https://github.com/buriy/python-readability
readability und ein paar andere Libraries habe ich auch ausprobiert. Ich frage mich, wie der aktuelle Stand heute ist
Es hat deutlich mehr Inhalte entfernt, als ich wollte
Das immer wieder erstaunliche Pandoc (https://pandoc.org/) macht so etwas sehr gut. Tatsächlich unterstützt es auch praktisch fast jedes andere Dokumentformat
Es ist erstaunlich, einfach zu benutzen und funktioniert gut. In diesem Bereich kommen häufig neue Tools heraus, aber um mich dazu zu bringen, etwas anderes als Pandoc zu verwenden, müsste es wohl wirklich einzigartige und überzeugende Funktionen haben oder stark auf einen bestimmten Anwendungsfall optimiert sein
Cool. Ich fände es gut, wenn es eine Browser-Erweiterung gäbe, die das auf jede Seite anwendet, die ich lese, und sie irgendwo speichert
https://github.com/deathau/markdown-clipper
Vermutlich gibt es Dutzende ähnlicher Erweiterungsalternativen
https://omnivore.app/
Edit: Ich habe zu schnell gelesen. Den Teil mit der automatischen, systematischen Verarbeitung habe ich übersehen