J'avais besoin de récupérer les articles du Journal du Hacker dans un script sans recopier leur page à la main. J'ai donc écrit ljdhar, un petit package NPM qui transforme le flux du site en objets JavaScript faciles à filtrer.
C'est quoi ljdhar ?
Le package s'appuie sur Puppeteer pour lire la page et extraire les informations utiles. Le site ne fournit pas ici d'API officielle, donc le parseur peut casser si sa structure change. Pour un projet ponctuel ou un agrégateur personnel, ce compromis reste acceptable ; pour un service critique, je partirais plutôt sur un flux maintenu par la source.
Avec ljdhar, tu peux :
- Recuperer les derniers articles
- Les trier par score
- Les rechercher par tag ou par titre
Fonctionnalites
getPostToLJDH(numStories): recupere les derniers articles.sortedByScore(stories): trie les articles par score.searchArticlesByTag(tag, numStories): recherche par tag.searchArticles(search, numStories): recherche par titre.
Chaque fonction renvoie un tableau d'objets Story (titre, URL, score, tags, nombre de commentaires, auteur).
Installation
npm install ljdhar
Utilisation
import { getPostToLJDH, sortedByScore, searchArticlesByTag, searchArticles } from 'ljdhar'; // Les 10 derniers articles getPostToLJDH(10) .then(stories => { console.log(stories); }).catch(err => { console.log(err) }); // Les 10 derniers tries par score getPostToLJDH(10) .then(stories => { const sortedStories = sortedByScore(stories); console.log(sortedStories); }).catch(err => { console.log(err) }); // Recherche par tag searchArticlesByTag('javascript', 10) .then(stories => { console.log(stories) }).catch(err => { console.log(err) }); // Recherche dans les titres searchArticles('hacker', 10) .then(stories => { console.log(stories) }).catch(err => { console.log(err) });
Contribuer
ljdhar a ete concu pour mon usage perso, mais je suis ouvert aux suggestions. Contacte-moi si tu as des idees.
Liens
Le projet date de mes premiers outils Node orientés automatisation. Il reste surtout intéressant comme exemple de petit adaptateur ciblé : peu de code, une sortie prévisible, et une limite claire dès que la source n'est pas contractuelle.
Article co-écrit avec l'IA · Images générées avec l'IA.
