betagouv / complements-alimentaires

MIT License
3 stars 0 forks source link

Vérifier l'encoding #123

Open pletelli opened 8 months ago

pletelli commented 8 months ago

Pb notamment sur https://complements-alimentaires-staging.cleverapps.io/element/1151--ingredient--Tartrate-adipate%20d%E2%80%99hydroxyde%20de%20fer/

(<, + etc)

ddahan commented 7 months ago

De ce que je vois dans cet exemple : ce sont les données initiales qui sont "sales". Une suggestion serait d'ajouter une étape de nettoyage des données au moment de l'import (ou à un autre moment). Exemple en utilisant BeautifulSoup :

from bs4 import BeautifulSoup # pip install beautifulsoup4
from data.models import Ingredient

ing = Ingredient.objects.get(name="Tartrate-adipate d’hydroxyde de fer")
dirty_text = ing.public_comments
print("<DIRTY TEXT>\n" + dirty_text)

# Parse the HTML
soup = BeautifulSoup(dirty_text, "html.parser")

# Get the text without HTML tags
clean_text = soup.get_text()
print("<CLEAN TEXT>\n" + clean_text)

Résultat:

<DIRTY TEXT>
Règ. (UE) n°2022/1373 : dénomination sur l'étiquetage : “tartrate-adipate d’hydroxyde de fer (nano)”. Uniquement compléments alimentaires sous forme de gélules. Compléments alimentaires pour la population adulte : teneur IHAT &lt; ou = à 100 mg/ jour &#43; avertissement indiquant que le complément alimentaire ne doit pas être consommé par les enfants et adolescents de moins de 18 ans. Compléments alimentaires pour les enfants et adolescents de moins de 18, à l'exclusion des enfants de moins de 4 ans : teneur IHAT &lt; ou = à 50 mg/jour &#43; avertissement indiquant que le complément alimentaire ne doit pas être consommé par les enfants de moins de 4 ans.
<CLEAN TEXT>
Règ. (UE) n°2022/1373 : dénomination sur l'étiquetage : “tartrate-adipate d’hydroxyde de fer (nano)”. Uniquement compléments alimentaires sous forme de gélules. Compléments alimentaires pour la population adulte : teneur IHAT < ou = à 100 mg/ jour + avertissement indiquant que le complément alimentaire ne doit pas être consommé par les enfants et adolescents de moins de 18 ans. Compléments alimentaires pour les enfants et adolescents de moins de 18, à l'exclusion des enfants de moins de 4 ans : teneur IHAT < ou = à 50 mg/jour + avertissement indiquant que le complément alimentaire ne doit pas être consommé par les enfants de moins de 4 ans.