Bonjour,
J'ai un énorme problème, je suis devenu chauve ... Non, je déconne, ce n'est pas un problème d'être chauve !
Plus sérieusement, je m'entraine en ce moment à scraper des sites et je scrappe un site avec plus de 500 000 articles avec différentes langes, dont le japonais qui m'ennuie.
Lorsque je veux écrire dans un fichier csv, je suis obligé de faire en encoding sinon Python me mets un message d'erreur:
Je suis allé à taton pour définir le meilleur encoding UTF-16 et UTF-8, voir d'autres mais je n'arrive jamais à un truc propre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 with open(f"{date}-données.csv","a",encoding="UTF-16") as fichier_extract: fichier_extract.write(f"{str(dico)}\n")
Selon vous lequel utiliser pour gérer au mieux les différentes langues, les indices monétaires, etc etc ... sans contrarier Python ?
N'ayant rien trouver comme encodage, je me suis dit "tant pis fais avec de toute façon le japonais te sert à rien" sauf que lorsque je veux convertir les données dans le fichier CSV, je ne sais quel séparateur mettre et qui me permettrait d'avoir une conversion propre par colonne ... J'ai essayé comme vous le voyez ci-dessous le signe § mais aussi le ù, le # le µ, etc etc mais à chaque fois j'ai pas mal de ligne qui merdent dans la conversion car le sigle apparait déjà dans le texte et donc n'est pas un séparateur.
J'ai voulu mettre deux séparateurs car cela réduit la probabilité de les avoir à la suite dans un encodage pas terrible mais excel ne me le permets pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part dico = "§".join([str(date),marque.strip(),description.strip(),prix.strip(),frais_port.strip(),pays.strip()])
J'ai ensuite essayé de nettoyer les textes avec caractères spéciaux avant l'écriture avec Python pour éviter l'encoding mais je n'y suis pas arrivé.
Avez-vous une idée, sauriez-vous m'aider ?
Un grand merci.
Damien
Partager