29/11/2010

On avance d'un pas, on recule de deux...

Bonne soirée enneigée!!


On approche peu à peu de la date de rendu de notre fabuleux site et il reste tout de même pas mal de soucis à régler!

Alors, d'abord, les bonnes nouvelles: le contexte, c'est fait!

La commande:



Le tableau est maintenant plus complet:



On peut d'ailleurs voir qu'à côté du numéro de chaque dump il y a désormais la mention de l'encodage d'origine.

Le résultat pour le contexte:



Mais nous avons toujours des soucis dans l'encodage!!
La commande iconv fonctionne presque tout le temps... D'ailleurs en ouvrant chaque fichier dans Notepad++ ou Smultron ou BBedit (etc.) on peut voir que les fichiers sont bien en UTF-8. Néanmoins, néanmoins...
J'ai toujours de gros soucis pour le russe....

La conversion en UTF-8 se fait mais l'affichage (que j'ai bien modifié via Firefox hein) est très bizarre.

Par exemple, un fichiers originellement en windows-1251:

Il s'affiche quasi normalement.
On le convertit en UTF-8, et voilà le résultat:


La recherche de contexte se faisant dans le fichier converti, on n'obtient aucun contexte (bah oui...) puisque le mot recherché est indescriptible......

Mais ce n'est pas fini! (Ah non hein!)

Certains dumps se retrouvent bizarrement en caractères latins....... Avant conversion bien sûr.... Donc impossible de chercher le contexte du mot "граница" dans la mesure où nous n'avons pas l'alphabet cyrillique dans le dump (on a bien par contre le mot "granica" << transcription en alphabet latin)... D'où peut venir ce problème?

Page originelle:


Dump:



Donc voilà voilà... Si quelqu'un a le même problème...

Et juste pour montrer la superbe différence entre le résultat de la commande file -i et la recherche du charset via egrep (en rouge: file -i, en vert: résultat egrep):



Ah oui!

J'allais oublier, les fichiers à concaténer sont concaténés, mais là je ne vous montre pas ma commande quand même!! Bon je donne quand même la syntaxe de 'cat':

cat fichier_a_concatener1 fichier_a_concatener2 >> (ou >) fichier_en_sortie

22/11/2010

Encodage en UTF-8

Oyez oyez!


Nous avons commencé la difficile étape de l'encodage en UTF-8. Difficile étape car la commande "file" ne semble pas vouloir fonctionner correctement et ne récupère donc pas toujours les bons encodages initiaux des pages traitées (ainsi, alors que certaines pages sont en windows-1251, "file" me récupère du us-ascii ...). On va donc récupérer les encodages directement après le "charset=" des pages html aspirées!!

Après cela on pourra donc convertir gentiment via "iconv" nos fichiers. À noter que si le fichier est déjà en utf-8, une gentille boucle ne le convertira pas mais se contentera de faire une copie et de renommer le fichier afin d'avoir un avant/après encodage pour TOUS les fichiers... Mais on changera peut-être cela par une inscription dans le tableau "fichier déjà en utf-8", bref, on verra ce qui nous plaît le plus après votes et délibérations.

Voilà une capture de ce qui se passe dans le terminal:




Le message en jaune ne s'affiche évidemment pas lorsque le fichier initial n'était pas en UTF-8 et qu'il y a bien une conversion.


Je ne m'étends pas plus aujourd"hui car en ce moment, je pense ne pas être la seule d'ailleurs, je cours un peu après le temps... Je mettrai donc des explications avec des bouts de script un peu plus tard!!


Bonne journée!!

16/11/2010

Problème d'aspiration des pages

Bonjour à tous!!



Quelle joie en cette belle journée ensoleillée de vous faire part de mes problèmes d'aspiration de pages!

Je ne donnerai ici pas de solutions aux problèmes rencontrés dans la mesure où je n'en ai pas pour le moment. Aussi, j'en appelle à votre bon cœur: si vous avez la solution à mon problème, merci de bien vouloir me la donner!!

Comme je l'avais dit dans une précédente note, certaines pages ne veulent pas être aspirées par wget, ni par lynx d'ailleurs... Je crois avoir compris, en partie, d'où vient le problème. En effet, à la fin de chaque lien, les symboles %0D viennent se greffer, corrompant ainsi la validité d'un très grand nombre de mes URLs...
J'ai essayé pas mal de choses:

  • vérifier que mes fichiers d'urls étaient bien encodés
  • vérifier qu'il n'y avait pas de retour chariot à la fin de chaque ligne de chaque fichier url (non y'a pas)
  • tenter de supprimer avec egrep
  • tenter de faire un cut en utilisant le % comme séparateur de colonnes
  • et bien d'autres choses
Rien n'a fonctionné. Rien de rien. >> On a trouvé! (voir plus bas)

Donc si vous savez quoi faire: je prends!


EDIT: Kelly apporte la réponse dans son commentaire

"j'ai résolu le problème :D il suffit de prendre les fichiers allemand.txt, finnois.txt et russe.txt et de les mettre en UNIX grâce à Notepad++ ... Bon ok, on l'a vu en cours grâce a Monsieur Fleury"

08/11/2010

Aspiration des pages avec wget et lynx

Eh oui nous sommes de vraies stakhanovistes du bash!!

Maintenant que nous avons réglé les problèmes de commandes non installées, on peut enfin aspirer les pages des liens que nous avons récupérés.

Pour cela, on intègre dans la boucle qui lit chaque ligne (donc chaque url) de chaque fichier, une petite commande wget qui récupère l'url et aspire le contenu de la page.

La commande:


Le seul petit souci est que certain site (comme Wikipédia par exemple) bloque quelques fois cette aspiration!!

Alors comment faire pour récupérer ces pages??


On utilise la commande lynx!!!


La commande:


Lorsque j'avais essayé mercredi dernier j'avais bel et bien récupéré les pages que je n'arrivais pas à avoir avec wget. Malheureusement, en réessayant aujourd'hui, j'en récupère certaines qui n'étaient pas disponibles avec wget mais je n'arrive pas à toutes les avoir quand même (et pourtant j'avais eu celles en question la semaine dernière)... Il va donc falloir trouver une solution à ce problème.


Le résultat du script donne un tableau comme ceci:


Je n'ai pas WGET, que faire?

Amis du soir, bonsoir!

Cela faisait longtemps que les jeunesses talinistes ne vous avaient pas gratifiés d'une sympathique note!
Il est temps de reprendre les bonnes habitudes.
La semaine dernière nous avons vu que l'on peut (en théorie) aspirer des pages web grâce à la commande wget.

Nous nous sommes donc attelées à la difficile tâche d'aspirer les pages de nos quelques 250 liens... Super super!!

Alors déjà, sachez que selon votre version de Cygwin, vous n'avez peut-être pas la commande wget (ni lynx d'ailleurs, et pas mal d'autres encore).
Pour cela, rien de très compliquer, il suffit de télécharger les paquets!
Comment fait-on?


Récupérer une commande:
  • On va sur le site de Cygwin: http://www.cygwin.com/
  • On télécharge le setup.exe en cliquant sur ça: 
  • On choisit "install from internet"
  • On met View sur Full
  • Dans la barre de recherche on tape "wget"
  • Puis on clique sur l'icône à côté de "skip" jusqu'à avoir la version qui nous plaît
  • Suivant
  • Le téléchargement s'effectue
  • Vous pouvez relancer Cygwin
  • Si vous taper wget -h vous aurez une liste de toutes les options!
Mais si comme moi vous n'avez pas de chance et que lorsque vous essayez d'utiliser wget cela vous affiche un super message d'erreur du genre "Error while loading shared libraries" avec un chemin juste avant vous indiquant où devrait se situer cette "shared library" n'ayez crainte, il y a toujours une solution!!

Il suffit en effet de télécharger le fichier dll cygz.dll et de la placer dans le même répertoire que wget.exe:
  • Télécharger cygz.dll en cliquant sur ce lien
  • Placer le dans le répertoire par défaut où doit se trouver wget.exe (et toutes les autres commandes!!): C:\cygwin\bin
Et voilà!! Wget fonctionne!!!!!!