Automatisation de la newsletter

Bonjour,

Je dépose ici, à toutes fins utiles, une demande assez technique concernant la newsletter de la MLA…

A l’heure actuelle, la newsletter (NL) est principalement composée d’articles repris du site Internet. Les éléments présents dans la NL sont quasi identiques à certaines données des articles : le titre / la description insérée dans les métadonnées / l’URL de l’article / l’URL de l’image.

Tous ces éléments sont insérés dans un code html que j’ai fabriqué moi-même (et qui reste d’ailleurs à améliorer).

Bien que j’ai acquis certains réflexes qui me permettent de faire, chaque mois, ce travail de modification du code et d’insertion des éléments propres à chaque NL, je me demandais s’il n’était pas possible d’automatiser ce travail ?
C’est à dire de prendre une partie des métadonnées des articles pour qu’ils soient automatiquement intégrés à la newsletter par une sorte de magie dont je ne vois même pas quel serait le point de départ n’ayant absolument aucune connaissance technique à ce sujet :sweat_smile:

Je laisse cette porte ouverte si quelqu’un souhaite la pousser… :wink:

Bonne journée,

Bonsoir @Blsd,

Pareil ça m’intéresserait, je suppose qu’une fois que tu m’auras partagé le code de l’email, j’y verrais plus claire sur les informations nécessaires à extraire des articles. Je suis par contre curieux d’avoir le lien du site web où je pourrais retrouver les articles, ne connaissant pas bien la MLA, je ne peux que supposer que tu parles de https://mlalerte.org/actualites/.

Merci :slight_smile:

1 Like

Wow, super, merci pour ton intérêt @jeremiec !

Les articles sont bien ici mais aussi et un peu (pour cette dernière page, je réutilise parfois des articles plus anciens car on ne publie pas des articles tous les mois. Comme il s’agit de conseils pérennes dans le temps, ce n’est pas un souci de les remettre à la une régulièrement).

Voici le code de l’email en question :
HTML Infolettre DEF (25.3 KB)
(il s’agit, sinon, du même mail dont il est objet ici)

Tu verras qu’il y a des vignettes comme celle-ci pour chaque article mis en avant :
image

Pour générer ces vignettes, j’insère manuellement pour chaque article :

  • l’URL de l’article (2x)
  • le titre de l’article
  • l’URL de l’image “mise en avant” rattachée à l’article
  • une description courte qui est généralement celle que je renseigne dans l’extension Yoast CEO de chaque article

Je sélectionne en général les articles du mois en les repérant sur mlalerte.org/AAAA/MM

Il m’arrive parfois de déroger un peu à cette règle (par ex. mettre dans la NL de janvier, un article de décembre qui n’est pas passé dans la précédente ou que j’ai particulièrement envie de remettre en avant) mais c’est exceptionnel.
Je précise toutefois ça car l’idéal serait d’avoir un code automatique que je peux tout de même remodifier par la suite pour apporter manuellement ces petits aménagements exceptionnels.

Enfin, ce qui se passe encore dans ma tête, c’est le choix de la rubrique dans laquelle l’article est classé (A la une / Outils / Actualité de la Maison).
A ma connaissance, aucun paramètre ne permet actuellement de dire “si tel article a telle caractéristiques, classe-le automatiquement dans telle rubrique”. Mais j’imagine que c’est faisable avec une catégorie par exemple ? Ou autre chose ?

Hello, je pense me concentrer sur ce sujet plutôt que de repasser sur l’email, faute de temps.

J’avais pensé à un système tel que :
Tu passes l’URL de l’article sur un site et ça sort le block à mettre dans l’e-mail pour cet article (le bloc étant personnalisable pour suivre l’évolution de l’email)

J’ai plus de mal à saisir la logique que tu utilises pour sélectionner les articles (si tu veux avoir une automatisation de la fabrication de tout les blocs HTML avec la sélection des articles)

De prime abord, je pense que ta solution est très bien en effet.

Je donnais des précisions sur le mode de sélection car j’imaginais qu’on pouvait imaginer une solution qui exploite les catégories dans lesquelles les articles sont classés.

Mais la solution que tu proposes me semble préférable : il ne me restera qu’à copier-coller le bloc. C’est une étape mais elle sera significativement moins chronophage que de repérer chaque élément dans le code et le changer manuellement (ce qui implique, de plus, 5 à 6 modifications manuelles par article).

Elle me permet aussi de faire des changements manuels les rares fois où je ne respecte pas exactement la même procédure (par exemple, je souhaite changer d’image ou modifier le résumé).

1 Like

Le bloc type est celui-ci :

<div class="chapter-left"><img alt="" class="miniature" src="URL DE L'IMAGE MISE EN AVANT" /></div>

<div class="chapter-right">
<h2><a href="URL DE L'ARTICLE" target="_blank">TITRE DE L'ARTICLE</a></h2>

<p class="resume">RÉSUMÉ ISSU DE YOAST SEO... <a class="lirelasuite" href="URL DE L'ARTICLE" target="_blank">Lire la suite</a></p>
</div>

<div style="clear:both">&nbsp;</div> 

par exemple :

<div class="chapter-left"><img alt="" class="miniature" src="https://mlalerte.org/france-info-le-defenseur-des-droits-interpelle-sur-lisolement-des-lanceurs-dalerte/toubon/" /></div>

<div class="chapter-right">
<h2><a href="https://mlalerte.org/le-defenseur-des-droits-appelle-a-une-transposition-ambitieuse-de-la-directive-sur-les-lanceurs-dalerte/" target="_blank">Le D&eacute;fenseur des droits appelle &agrave; une transposition ambitieuse de la directive sur les lanceurs d&rsquo;alerte</a></h2>

<p class="resume">&Agrave; l&rsquo;heure o&ugrave; tous les pays membres de l&rsquo;Union sont appel&eacute;s &agrave; transposer la directive europ&eacute;enne 2019/1937 sur la protection des personnes qui signalent des... <a class="lirelasuite" href="https://mlalerte.org/le-defenseur-des-droits-appelle-a-une-transposition-ambitieuse-de-la-directive-sur-les-lanceurs-dalerte/" target="_blank">Lire la suite</a></p>
</div>

<div style="clear:both">&nbsp;</div>

Top, je pars sur ça du coup

1 Like

Bonsoir @Blsd,

la premiere piste que j’étudiais (un petit site web) n’est pas compatible avec le temps de réponse du site de la MLA qui peut être supérieur à 10s sur certains articles. Je cherche actuellement d’autres pistes, comme une extension navigateur. Je te tiens au courant de ce que je peux réaliser.

2 Likes

Ok, merci @jeremiec :slight_smile:

Bonjour @Blsd,

Comme prévu, j’ai exploré la piste de créer une extension navigateur (ça me permet de télécharger le html des articles). Cependant j’ai le problème suivant à posteriori, j’ai essayé quelques techniques pour lire le HTML pour extraire les informations pertinentes mais :

  • Le HTML généré par wordpress est chaotic (voire invalide)
  • Je n’arrive pas à trouver une technique qui ne nécessiterait pas de maintenir l’analyseur HTML, ce qui n’est pas envisageable.

Si quelqu’un reprends le sujet, mon prototype courant est disponible sur github,
j’ai essayé :

  • de sanitize le html envoyé par wordpress
  • De passer des regex/faire une recherche à la main mais il n’y a pas d’attribut/balises selective sur les informations à sélectionner, par exemple l’image est simplement un tag img:
<img src="https://mlalerte.org/wp-content/uploads/2020/07/46973589854_39e0ea96b2_h.jpg">

(au passage, au niveau accessibilité ce n’est pas ideal)

  • de sélectionner les nœuds grace à Xpath/selector (pour rendre le nœud utilisé pour l’information configurable facilement avec un copier coller 1 fois dans le dom en cas de modification) mais cette information dépendant de l’article à cause de wordpress (encodé avec des id).

Une piste pourrait être de lister tout les blocks h1, img, etc. de la page HTML pour étudier si un genre de règle pourrait être extrapolé.

2 Likes

Est-ce que ça faciliterait les choses de passer par l’API wordpress au lieu de faire du web scrapping ?

Ok merci pour ce retour.
Je t’avoue que ça me dépasse complètement techniquement donc je ne saurai pas du tout quoi en dire :sweat:

Je suis disponible s’il y a besoin de modifier quelque chose qui est à ma portée, mais je n’ai pas l’impression que ce soit le cas…

La problématique ressemble pas mal à ce que fait Meta-Press.es.
Avec Meta-Press.es je vais lire les résultats des moteurs de recherche interne des journaux et je les rapatrie dans une WebExtension de Firefox.
Je m’appuie sur des sélecteurs CSS et/ou XPath pour récupérer les informations utiles (titres, date, lien, description, image…). Ils sont à personnaliser pour chaque source, mais ça marche.
De cette manière je n’ai pas à maintenir un parseur HTML, c’est Firefox le parseur. Ce qu’il peut afficher, on peut le parcourir ensuite.

2 Likes