Jsonframe, plugin Cheerio.js pour scraper avec input/output JSON

Bonjour chers collègues scrapeurs,

s’il y en a d’entre vous qui tourne sous javascript pour crawler/scraper, j’ai développé un plugin jsonframe-cheerio pour cheerio que j’ai mis à disposition sur npm et github.

L’idée est simple. Que vous utilisez un Headless Browser avec PhantomJS et/ou NightmareJS par ex ou simplement des requêtes HTTP (via Axios par ex), il vous suffit de plugger Cheerio et le plugin jsonframe dessus pour avoir accès à de l’extraction de donnée directement au format JSON.

En fait vous définissez la structure de vos données (listes, multi-niveaux, sélecteurs simples, attributs et bientôt regex) directement au format JSON que vous souhaitez en sortie.

Pour voir la doc : repo github.

Perso je gagne un temps fou. La mise en place des données est (je trouve) très pratique et je peux directement construire mon résultat JSON sur le format de ma data en BDD par exemple.

N’hésitez pas à revenir vers moi si vous avez des questions.
Du parsing de mail et téléphone va bientôt être intégré ainsi que les fonctions régulières libres.
Je pense ajouter d’autres formats de sorties également (xml et csv par ex).

Au plaisir.
Gabin

5 J'aimes

Merci du partage @mnmlstrntreprnr !

1 J'aime

J’en profite pour vous indiquer qu’un tutoriel vient d’être publié sur Medium.

Bon scraping :wink:

1 J'aime

J’ai repéré ton repo, il y a quelques temps pour un projet que j’ai en cours.

J’ai pas encore testé, mais je me garde sous le coude.

1 J'aime

J’en profite pour vous annoncer la sortie d’un article (en français cette fois-ci) sur le blog de Crème de la Crème : http://blog.cremedelacreme.io/2017/02/07/donnees-site-code-javascript-digital/

2 J'aimes

Bonjour,
je scrappe des pages html contenant des tableaux.
L’utilisation de jsonframe est vraiment sympa, néanmoins, j’aurais une expression de besoin :
Quand une balise est trouvée (le sélecteur l’a trouvée) mais que son contenu est vide (ex. <p><p> <<= c’est vide entre <p> et </p> ), alors le scraper de jsonframe ne sort rien … aucun élément json.
Pourtant ça me serait très utile d’avoir ces éléments json, même vides, car ils font partie de mes tableaux avec quelques cases vides (comme moi).
Y a t il un moyen que ce soit possible ? :slight_smile:

Tu peux p-e faire un replace de ‹  › par la valeur voulue ?