Page suivante - Page précédente - Table des matières

18. Filtrage Minitel

  • lancer xtel depuis une xterm contenant un grand historique de ligne : xterm -sb -sl 20000
  • Faîtes le 3611.
  • Effectuer une recherche sur le secteur qui vous intéresse. Un clic sur le bouton droit de la souris permet de récupérer dans l'xterm l'ensemble des informations de chaque page minitel reçue sous forme ASCII.
  • Il ne vous reste plus qu'à copier ces informations dans un fichier (dans l'xterm, bouton gauche pour marquer le début de la selection, bouton droit pour marquer la fin, bouton du milieu pour coller la selection où vous vouler).

Le résultat est pollué par les indications de navigation du minitel et les changements de page.

Le script suivant est utile pour filtrer les pages ascii générées par xtel. Il élimine les sauts de page et toutes les informations de navigation des pages minitel pour ne garder que les informations pertinentes (nom, adresse et téléphone). Avec quelques traitements supplémentaires il pourrait aisément alimenter une base de données.


#!/usr/bin/perl -w
#
#    minitel-filter.pl
#
#    Copyright (C) 1999, Gilles Lamiral
#
#    This program is free software; you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation; either version 2 of the License, or
#    (at your option) any later version.
#
#    You should have received a copy of the GNU General Public License
#    along with this program; if not, write to the Free Software
#    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
#
# usage:     minitel-filter.pl  input-file
#        or  cat input-file | minitel-filter.pl
<>;
@file = <>;
$file = join("",@file);
@page = split(/                  page suivante  Suite  \nrevoir la liste de specialites\*  Retour \n   infos sur ordre des reponses \* Envoi \n/,$file);
foreach $page (@page) {
 @infos = split(/````````````````````````````````````````\n/,$page);
 @enterprise = split(/    ````````````````````````````````````\n/,$infos[1]);
 foreach $enterprise (@enterprise) {
 print   "=========================================\n",
 "Etat:\n",
 "-----------------------------------------\n";
 @phoneInfos = split(/                                        \n/, $enterprise);
 foreach $phoneInfos (@phoneInfos) {
 print $phoneInfos;
 }
 }
}


Page suivante - Page précédente - Table des matières