Files
TougliGui/.claude/agent-memory/dofus-scraper-architect/html_a_prevoir_section.md

3.0 KiB

name, description, type
name description type
HTML structure of "À prévoir" section Pattern HTML, sélecteurs et règles de mapping pour la section "À prévoir" des pages de quête dofuspourlesnoobs.com project

Le site est rendu via Weebly. L'en-tête de quête (Prérequis, Position de lancement, Récompenses, À prévoir) tient dans un seul <div class="paragraph">, en HTML plat, avec des cascades de <span> parasites.

Identification de la section : il n'existe pas de classe CSS dédiée. La seule clé fiable est le libellé textuel <strong>À prévoir</strong> (encodé &Agrave; pr&eacute;voir, parfois suivi d'un espace, parfois : à l'intérieur ou à l'extérieur du <strong>). Les couleurs <font color="..."> du header (#f00 Prérequis, #3a96b8 Position de lancement, #5fa233 Récompenses) ne s'appliquent pas à À prévoir — ne pas s'en servir comme discriminateur.

Structure typique :

<strong>À prévoir :</strong>
<ul>
  <li>2 x combats (réalisable en groupe).</li>
  <li>1 x Donjon Antre du Dragon Cochon.</li>
</ul>

Stratégie de parsing robuste : sur le inner_html() du <div class="paragraph">, splitter via regex (?i)<strong[^>]*>\s*&Agrave;\s*pr&eacute;voir\s*</strong>\s*:? puis couper au prochain <strong rencontré. Parser ce fragment avec Html::parse_fragment et itérer les <li>. Cette approche tolère la cascade de <span> Weebly mieux que la navigation par siblings.

Cas "À savoir" : sur quêtes simples (cryptologie, mise-à-l'épreuve), un <strong>À savoir :</strong> apparaît à la place — texte libre sans <ul>. Section distincte, ne pas la confondre.

Cas "absence" : certaines quêtes (la-colere-des-dieux) n'ont ni À prévoir ni À savoir → retourner Vec::new(), c'est valide.

Mapping texte → combat_type observé :

  • donjon dans le texte → "donjon" (label = nom du donjon)
  • combat + seul"solo"
  • combat + groupe/réalisable en groupe"groupe"
  • combat à vagues"combat_vagues"
  • combat "tactique""combat_tactique"
  • combats aléatoires"combat_aleatoire"
  • combats contre des monstres"combat_zone"
  • Aller à <lieu>"deplacement"
  • n x <Nom> sans "combat"/"donjon" → "item" (matériaux à fournir)
  • modifier observé : évitable → flag boolean

Count : extraire via regex ^(\d+)\s*x\s*. Si commence par Des → quantité indéterminée ("x?").

Why : ces patterns ont été validés sur 10 pages réelles (espoirs-et-trageacutedies, dans-la-gueule-du-milimilou, voir-le-dark-vlad-et-mourir-ou-pas, mise-agrave-leacutepreuve, cryptologie, plongeon-et-dragon, le-dragon-noir, une-acircme-en-colegravere, a-la-recherche-de-crocoburio, l-oeuf-de-crocabulia) en avril 2026.

How to apply : utiliser ce mapping dans src-tauri/src/commands.rs pour peupler CombatIndicator. Si la struct actuelle (combat_type + count) est conservée, le label du donjon/item est perdu — recommander d'ajouter label: Option<String> et evitable: bool pour préserver l'info riche.