Show HN : MarkdownDown, un outil pour organiser et convertir des pages web en Markdown
(markdowndown.vercel.app)- MarkdownDown est un outil qui transforme n’importe quelle page web en un document Markdown propre
- Il prend en charge le téléchargement d’images dans le résultat de conversion, ce qui permet de lier dans le Markdown les images enregistrées en local
- L’option de suppression des éléments hors contenu permet de réduire les éléments sans rapport avec le corps de l’article
- Il propose aussi une option pour appliquer un GPT Filter au résultat Markdown
- Utile pour les utilisateurs qui veulent conserver le contenu d’une page web en Markdown ou organiser aussi les images avec
Organiser une page web en Markdown
- MarkdownDown convertit une page web en Markdown propre
- Pendant la conversion, il peut télécharger les images et inclure dans le résultat des liens vers les images locales
Options de conversion
-
Organisation centrée sur le contenu
- L’option Remove non-content elements supprime les éléments qui ne relèvent pas du contenu
-
Traitement des images
- L’option Download images locally and link them enregistre les images en local et les lie
-
Application du GPT Filter
- L’option Apply GPT Filter on Markdown permet d’appliquer un GPT Filter au résultat Markdown
1 commentaires
Avis de Hacker News
Il y a trois problèmes distincts quand on transforme un site web en Markdown : récupérer tout le contenu de la page sans rien manquer, supprimer les publicités et les contenus annexes, et obtenir la bonne mise en page ainsi que le bon formatage des sections.
Pour l’extraction précise du contenu et la mise en forme, les solutions basées sur Trafilatura, Newspaper4k et python-readability fonctionnent le mieux avec leurs réglages par défaut, tandis que pour une collecte exhaustive, la combinaison d’un service de scraping et de Selenium convient bien.
Je me demande ce que cet outil fait différemment, ou mieux. Le domaine stagne depuis un moment, donc j’aimerais entendre ce que vous avez appris.
Pour l’extraction de contenu, l’approche de la bibliothèque Postlight était assez propre. Elle attribue un score à chaque nœud HTML à partir d’heuristiques comme la longueur du texte, la densité de liens ou les classes CSS, puis choisit le nœud ayant le score le plus élevé. Je l’ai portée en Swift en développant une application personnelle de lecture différée.
https://github.com/postlight/parser
Si la vérification échoue, il découpe le contexte HTML de la page complète, le convertit en Markdown avec Pandoc, puis le LLM extrait le corps de l’article depuis le Markdown.
Vercel, vraiment… désormais, si le trafic arrive, il va falloir surveiller la facture. J’espère que vous ne l’utilisez pas de la manière que Vercel vous pousse constamment à adopter.
Comme dans le mème du bus : du côté heureux, il y a l’utilisateur et Vercel ; du côté triste, il y a le portefeuille.
Bien sûr, exception faite si l’on a besoin de mise à l’échelle et de réduction dynamiques.
Je n’ai rien fait de particulier pour gérer le trafic de HN ; c’était juste une application Next.js de base.
Proposer le téléchargement d’images et le filtrage basé sur GPT est une bonne idée.
J’ai créé un outil similaire l’an dernier, mais il n’a pas ces fonctionnalités : https://url2text.com/
L’UI peut être lente, mais on peut voir un exemple de sortie sur la page d’accueil.
L’API sous-jacente est l’API de capture d’écran de sites web d’Urlbox, et elle est bien plus performante si on l’utilise directement. On peut demander en une seule fois du Markdown avec le HTML rendu par JavaScript, les métadonnées et une capture d’écran : https://urlbox.com/extracting-text
On peut aussi enregistrer directement les résultats dans un stockage compatible S3 : https://urlbox.com/s3
On peut également les recevoir via webhook : https://urlbox.com/webhooks
Dans un side project, j’effectue plus d’un million de rendus par mois avec la fonctionnalité Markdown d’Urlbox, et ce Markdown est bien plus pratique pour les embeddings et les prompts.
Pour scraper un site web entier de cette manière, le nouvel outil de dctanner vaut aussi le coup d’œil : https://usescraper.com/
C’est 0,001 $ par page et ça utilise un navigateur Chrome headless. Les résultats sont rapides et on ne paie qu’à l’usage.
Si l’on n’a besoin que du texte, ça paraît assez cher.
Quand un site affiche un message de cookies, cet outil semble bloqué dessus et n’arrive pas à analyser le contenu réel.
Par exemple, j’ai essayé avec https://www.cnbc.com/ et il n’a généré en Markdown que le message de cookies et le texte juridique autour.
J’ai eu de la chance de pouvoir le construire au-dessus d’une API mature qui gère déjà beaucoup de cas limites liés aux différents types de rendu de pages.
La conversion HTML→Markdown avec seulement htmltidy et Pandoc était déjà tout à fait utilisable.
http://www.html-tidy.org/
https://pandoc.org/
Je suis à la fois tenté et inquiet à l’idée de faire passer tout le HTML du template final dedans pour repérer les structures invalides restantes. Selon le degré de structure des corrections, on pourrait peut-être en faire une suite de tests.
J’ai aussi créé quelque chose de très similaire, smort.io. Il suffit d’ajouter
smort.io/devant l’URL d’un article pour pouvoir facilement l’éditer, l’annoter et le partager.Ça fonctionne aussi avec les articles ArXiv.
Le Show HN de Smort est ici : https://news.ycombinator.com/item?id=30673502
https://jina.ai/reader/
Je l’ai essayé sur une page marketing complexe et il s’en est très bien sorti.
Si c’est partageable, je suis curieux de savoir quelle charge cela impose à l’hôte. Est-ce à un niveau où l’on peut continuer à l’exploiter gratuitement, ou est-ce que l’efficacité coût finira par devenir mauvaise ?
À part ça, GPT-4 coûte cher, mais jusqu’ici les coûts restent négligeables, donc je suis confiant. Je pense que je pourrai le maintenir longtemps.
C’est l’un des cas où l’IA n’est pas nécessaire. Il existe un algorithme très efficace pour extraire le contenu d’une page, et l’une de ses implémentations est https://github.com/buriy/python-readability.
J’ai aussi essayé readability et quelques autres bibliothèques. Je me demande quel est l’état de l’art aujourd’hui.
Il supprimait beaucoup plus de contenu que je ne l’aurais voulu.
Le toujours excellent Pandoc (https://pandoc.org/) fait très bien ce genre de choses. En fait, il prend aussi en charge pratiquement tous les autres formats de documents.
Il est incroyable, facile à utiliser et fonctionne bien. De nouveaux outils sortent souvent dans ce domaine, mais pour me faire utiliser autre chose que Pandoc, il faudrait vraiment une fonctionnalité unique et convaincante, ou une optimisation très poussée pour un cas d’usage précis.
Sympa. J’aimerais qu’il existe une extension de navigateur qui applique ça à toutes les pages que je lis et les enregistre quelque part.
https://github.com/deathau/markdown-clipper
Il doit bien exister des dizaines d’extensions alternatives similaires.
https://omnivore.app/.
Édit : j’ai lu trop vite. J’avais manqué la partie sur le traitement automatique et systématique.