Scipts utilisés pour récupérer et convertir la DAF.
#!/usr/bin/perl # Recuperer le dictionnaire de l'Academie francaise (8e edition, 1932-1935) # (c) Yann Forget # Licence GPL $url1="http://colet.uchicago.edu/cgi-bin/getobject_?p."; $url2="./projects/artflb/databases/artfl/dicos/acad1932/IMAGE/"; $i=0; while ($i<22) { print $i; $j=0; while ($j<68) { $url="$url1$i:$j$url2"; `wget $url -O daf$i.$j.html`; $j++; } $i++; print $url; }
Remarque : <yannf> c'est normal, faut tout virer après 21.46
#!/usr/bin/perl # Suppression des entetes et des pieds de page # (c) Yann Forget # Licence GPL $j = 0; $target = "resultat"; while ($j<22) { $t = "$target$j.html"; print $t,"\n"; $i = 0; open (TARGET, ">$t") or die "Impossible to open $t : $!\n"; while ($i<68) { $file = "daf$j.$i.html"; # Longueur du fichier $long = `wc -l < $file`; $l=1; open (FILE, "<$file") or die "Impossible to open $file : $!\n"; while (<FILE>) { print TARGET $_ if (($l > 59) and ($l < ($long-6))); $l++; } close(FILE); print TARGET "<br>\n"; $i++; } close(TARGET); $j++; }
#!/usr/bin/perl # Obtenir la liste des mots # en supposant que tout le dico est contenu dans un seul fichier 'dico.html' # s'utilise comme ca : cat dico.html | ce_script.pl | sort | uniq > liste_mots.txt while ( $ligne = <>) { $ligne =~ tr /A-Z/a-z/ ; # tout le monde en minuscule # html c'est pas toujours cool $ligne =~ s/é/é/g ; $ligne =~ s/è/è/g ; $ligne =~ s/ê/ê/g ; $ligne =~ s/à/à/g ; $ligne =~ s/â/â/g ; $ligne =~ s/î/î/g ; $ligne =~ s/ï/ï/g; $ligne =~ s/ô/ô/g ; $ligne =~ s/û/û/g ; $ligne =~ s/ù/ù/g; $ligne =~ s/ç/ç/g; if ( $ligne =~ 'font size=\"\+1\"\>(+)' ) { # nouveau mot $mot = $1 ; print "$mot\n" ; } }
Vieille version, prendre Conversion (2) plutôt
#!/usr/bin/perl # # Permet de transformer le code html des pages du dictionanire de l'académie # vers une syntaxe wiki pour être intégré dans le wiktionnaire... #Un fichier .wiki est créé par Article trouvé dans le fichier html. # # ouverture du fichier html open(fichierAca, "<$ARGV") or die "Erreur de lecture $argv, Erreur: $!"; #récupération d'un tableau de lignes @lignes=(<fichierAca>); #Parcours du tableau de lignes $i=0; for(@lignes) { if (/biblio/) { if ($i!=0) { #On enlève tous les sauts de ligne $chaine=~s/\n/ /g; #print "traitement:$chaine\n"; #traitement des données #on vire les balises br $chaine=~s/<br>//ig; $chaine=~s/'/’/g; $chaine=~s/oe/œ/ig; #on remplace les caractères accentués $chaine=~s/è/è/ig; $chaine=~s/é/é/ig; $chaine=~s/à/à/ig; $chaine=~s/ê/ê/ig; $chaine=~s/ô/ô/ig; $chaine=~s/û/û/ig; $chaine=~s/â/â/ig; $chaine=~s/ù/ù/ig; $chaine=~s/î/î/ig; $chaine=~s/ç/ç/ig; $chaine=~s/ï/ï/ig; #recherche du nom de l'article $chaine=~/<font size=\"\+1\">(.*)\.<\/font size=\"\+1\">/ig; $nom=lc($1); #recherche de la catégorie $chaine=~/<cat>(.*)<\/cat>/ig; $cat=$1; $test=substr($cat,0,2); #test du type de mots if ($test eq "n.") { $test=substr($cat,3,5); #test du genre $genre="{{f}}" if ($test eq "f."); $genre="{{m}}" if ($test eq "m."); $cat="{{-nom-}}"; $catego="]"; } if($test eq "ad") { $cat="{{-adj-}}"; if ($nom =~ /, /) { $genre="{{m}} ({{f}} : )"; } else { $genre="{{mf}}"; } $catego="]"; } if ($test eq "v.") { $test=substr($cat,2,5); #test du genre $genre="{{t}}" if ($test eq " tr."); $genre="{{i}}" if ($test eq "ntr."); $cat="{{-verb-}}"; $catego="]"; } if ($test eq "lo") { $genre=""; $cat="{{-locu-}}"; } $fr="{{=fr=}}\n\n{{-etym-}}\n\n{{-pron-}}\n"; $chaine=~s/<biblio.*.<\/cat>/$fr.$cat.$nom/; $chaine=~s/^/$fr\n$cat\n\n'''$nom''' $genre\n#/; #Suppression $chaine=~s/<cat>.*.<\/cat>//i; $chaine=~s/<font size=\"\+1\">.*.\.<\/font size=\"\+1\">//ig; #Recherche du domaine $chaine=~/<dom>(.*)<\/dom>/ig; $dom=$1; $chaine=~s/<dom>.*.<\/dom>/\{\{term\|.$dom\}\}/i; #Une autre définition $chaine=~s/<p><dd>\n/#/ig; $chaine=~s/<dd>\n/#/ig; $chaine=~s/<dd>/#/ig; #Remplacment des italiques $chaine=~s/<i>()/\n#: ''\u\1/ig; $chaine=~s/<\/i>/''/ig; #Traitement des redirections $chaine=~/<a(.*)>(.*)<\/a>/i; $redir=$2; $chaine=~s/<a(.*)>(.*)<\/a>/\\]/ig; #Terme figuré $chaine=~s/fig\./\{\{fig\}\}/g; $chaine=~s/<\/p>/\n/ig; $chaine=~s/<p>/\n/ig; #nettoyage $chaine=~s/<col n=\"\">/\n/g; $chaine=~s/page :+//g; $chaine=~s/''\./''/g; $chaine=~s/.t. de //ig; $chaine=~s/.t. d'//ig; $chaine=~s/#\./#/g; #on retire xpage... $chaine=~s/<xpage n=\":+\">//i; $chaine=~s/\('''*'''\) +\(\{\{*\}\}\)/\2\1/; $chaine=~s/#\n/# /g; $chaine=~s/ +/ /g; $chaine=~s/$/\n{{-trad-}}\n\n/; $chaine=~s/$/\n$catego\n\n/; $mod_daf="{{DAF1932}}"; $chaine=~s/$/$mod_daf\n/; $nom=~s/, .*//; $nom=~s/ /_/g; $nom=~s///g; $file = "$nom.wiki"; print $file,"\n"; open(ECRIRE,">$file") or die "Erreur de creation du fichier : $!\n" ; print ECRIRE "$chaine"; print "Fichier $nom.wiki créé avec succès\n"; close(ECRIRE); $chaine=""; $i=0; } } else { $chaine=$chaine.$_; $i++; } } close(fichierAca);
#!/usr/bin/perl # # Permet de transformer le code html des pages du dictionanire de l'académie # vers une syntaxe wiki pour être intégré dans le wiktionnaire... #Un fichier .wiki est créé par Article trouvé dans le fichier html. # # ouverture du fichier html open(DAF, "<$ARGV") or die "Erreur de lecture $argv, Erreur: $!"; #récupération d'un tableau de lignes @lignes=(<DAF>); open(CORRECT, ">corrections.txt") or die "Can't open corrections.txt : $!\n"; open(REDIRECT, ">redirect.txt") or die "Can't open redirect.txt : $!\n"; #Parcours du tableau de lignes $i=0; for(@lignes) { if (/biblio/) { if ($i!=0) { #On enlève tous les sauts de ligne $chaine=~s/\n/ /g; #traitement des données #on vire les balises br $chaine=~s/<br>//ig; $chaine=~s/'/’/g; #on remplace les caractères accentués $chaine=~s/è/è/ig; $chaine=~s/é/é/ig; $chaine=~s/à/à/ig; $chaine=~s/ê/ê/ig; $chaine=~s/ô/ô/ig; $chaine=~s/û/û/ig; $chaine=~s/â/â/ig; $chaine=~s/ù/ù/ig; $chaine=~s/î/î/ig; $chaine=~s/ç/ç/ig; $chaine=~s/ï/ï/ig; $chaine=~s/æ/æ/ig; $chaine=~s/œ/œ/ig; #recherche du nom de l'article $chaine=~/<font size=\"\+1\">(.*)\.<\/font size=\"\+1\">/ig; $nom=lc($1); #recherche de la catégorie $chaine=~/<cat>(.*)<\/cat>/ig; $cat=$1; $test=substr($cat,0,2); #test du type de mots if ($test eq "n.") { $test=substr($cat,3,5); #test du genre $genre="{{f}}" if ($test eq "f."); $genre="{{m}}" if ($test eq "m."); $cat="{{-nom-}}"; $catego="]"; } if($test eq "ad") { $cat="{{-adj-}}"; if ($nom =~ /, /) { $genre="{{m}} ({{f}} : )"; } else { $genre="{{mf}}"; } $catego="]"; } if ($test eq "v.") { $test=substr($cat,2,5); #test du genre $genre="{{t}}" if ($test eq " tr."); $genre="{{i}}" if ($test eq "ntr."); $cat="{{-verb-}}"; $catego="]"; } if ($test eq "lo") { $genre=""; $cat="{{-locu-}}"; } $article = "{{=fr=}}\n\n{{-etym-}}\n\n{{-pron-}}\n\n* {{API}} :\n\n"; $nom =~ s/, .*//; $redirect=""; if ($nom=~ s/ ou (.*)//) { $redirect=" ou '''$1'''"; print REDIRECT $1,"\n"; } #print "$nom $redirect\n"; $article .= "$cat\n\n'''$nom'''$redirect $genre\n#"; #Recherche du domaine $dom = ""; $dom = " {{term|$1}}" if $chaine =~ /<dom>(.*)<\/dom>/ig; $dom =~ s/t. de //ig; $dom =~ s/t. d’//ig; $article .= $dom; #Une autre définition $def = $chaine; $def = "$1" if $def =~ /<\/dom>(.*)/ig; $def = "$1" if $def =~ /<\/cat>(.*)/ig; $def =~ s/<dd>/\n# /ig; #Remplacment des italiques $def =~ s/<i>(.*?)<\/i>/\n#: ''$1''/ig; $def =~ s/<p>//ig; $def =~ s/<\/p>//ig; $def =~ s/<sved>(.*)<\/sved>/'''\u\L$1'''/ig; $def =~ s/<cat>(.*)<\/cat>/''$1''/ig; $article .= $def; $article =~ s/#\./#/g; $article =~ s/# \n//g; #Traitement des redirections $chaine =~ /<a(.*)>(.*)<\/a>/i; $redir="]"; print "$nom $redir\n" if $2; $article =~ s/<a(.*?)>(.*?)<\/a>/$redir/i; #Terme figuré $article .= " {{fig}}" if $chaine =~ /fig\./ig; $chaine =~ s/fig\.//ig; $article .= "\n" if $chaine =~ /<\/p>/ig; $chaine =~ s/<\/p>//ig; $article .= "\n" if $chaine =~ /<p>/ig; $chaine =~ s/<p>//ig; #nettoyage $article =~ s/<col n=\"\">/\n/ig; $article =~ s/page :+//ig; #$chaine =~ s/''\./''/g; #$article =~ s/\('''*'''\) +\(\{\{*\}\}\)/\2\1/; $article =~ s/ +/ /g; $article .= "{{-trad-}}\n\n"; $article .= "$catego\n\n"; $article .= "{{-voir-}}\n\n"; $article .= "* $redir\n\n"; $article .= "{{DAF1932}}\n\n"; $article .= "{{à vérifier}}\n"; $nom =~ s/ /_/g; $nom =~ s/<(*)>//ig; print CORRECT "$nom\n" if $1; # Peut-être pas indispensable, mais bon... $article =~ s/<*>//ig ; $rep = "articles/".lc(substr($nom,0,1)); mkdir $rep if (!-d $rep); $file = "$rep/$nom.wiki"; #print $file,"\n"; open(ECRIRE,">$file") or die "Erreur de création du fichier : $!\n"; print ECRIRE "$article"; #print "Fichier $nom.wiki créé avec succès\n"; close(ECRIRE); $chaine=""; $i=0; } } else { $chaine=$chaine.$_; $i++; } } close(CORRECT); close(REDIRECT); close(DAF);