France Hardware : Forums de discussion - Découvrez notre nouveau comparateur d'offres Internet
Retrouvez les prix près de chez vous :  
Index du forum | Liste des membres | Liste des groupes | Inscription | F-A-Q | Recherche
Pseudo :    Password :     
29 521 membres enregistrés - 2 069 420 posts - 122 057 topics
Index des forums FH  | Index des forums DegroupNews
      Programmation
           Bases de données
                regex et consort
78 connectés(record : 2799 le 29 May 2016 - 15 h 34)

Vous devez vous connecter pour répondre au topic.
1,2,3 | Suivant
regex et consort

fanfouer
Un peu partout

Messages : 1 586
Inscrit le 04/01/05
Ville : annecy
Non connecté
  Posté le 25 February 2005 - 22 h 23 m 59 s
bonjours a tous!! je fait un base de données sur les DSLAM de free et j'ai pas du tout l'intension de l'alimenter a la main (car il y a 1500 DSLAM alors pour tout entrer a la main bonjours la pagaille! :nrv: ) et j'ai penser a recuperer les infos sur la page meme ou il y a ces infos (http://www.frimousse.org/dslam?vue=tout) pour les mettre dans la BDD.

est-ce possible? merci de me repondre! :D


Message édité 1 fois, la dernière par fanfouer le 04 March 2005 - 07 h 35.

http://www.infos-reseaux.com

Woofy
Totalement inutile, complètement indispensable

Messages : 31 551
Inscrit le 11/01/02
Ville : Lyon
Non connecté
  Posté le 25 February 2005 - 22 h 50 m 52 s
Salut!
Tu veut le faire juste une fois ou en automatique?
Si c'est juste une fois, ca doit surement etre possible en mettant tout dans un fichier texte (copier-coller), en lisant le fichier ligne par ligne, et pour chaque ligne, alors je ne sais pas s'il existe la fonction en php mais elle existe en perl, tu crée un tableau en découpant sur les espaces et après tu met a jour ta base de donnée en y inserant dans l'ordre souhaité chaque case du tableau récupéré).
Ca doit pas être trop dur a faire, et pas besoin de regexp!




fanfouer
Un peu partout

Messages : 1 586
Inscrit le 04/01/05
Ville : annecy
Non connecté
  Posté le 25 February 2005 - 23 h 02 m 00 s
oui efectivement on m'a parler de cette methode et je ne sais pas la mettre en oeuvre car je n'ai pas la synthaxe mais pour repondre a ta question c'est automatique, par exemple, leur BDD est suceptible d'etre mise a jour tous les jours alors la mienne pourrait etre mis a jours pendant la nuit.



http://www.infos-reseaux.com

Woofy
Totalement inutile, complètement indispensable

Messages : 31 551
Inscrit le 11/01/02
Ville : Lyon
Non connecté
  Posté le 25 February 2005 - 23 h 22 m 34 s
ok, donc la ca deviens autre chose.
Il faut accéder a leur page (attention, informe toi peut-être sur les droits d'utilisation de leurs données) et récupérer les infos automatiquement.
Malheureusement, la je sais pas trop comment faire pour récupérer les infos d'une page web. Ca deviens plus dur la!




tempo
Zen

Messages : 2 178
Inscrit le 14/09/02
Ville : Grenoble (Echi)
Non connecté
  Posté le 26 February 2005 - 16 h 32 m 00 s
hello,

c'est faisable avec un traitement en Perl, par exemple.
1/ recuperer le contenu de la page (en Perl: utiliser libwww ou - pour les non-puristes, via wget ou curl)
2/ "parser" le contenu pour determiner les lignes de données (elles commencent toutes par
    Code     
1. <tr><td><a href=
(en Perl: via une regexp de match)
3/ pour chaque ligne detectée comme "ligne de données", faire un peu de traitement (remplacer les tags HTML par des separateurs, par exemple) puis "splitter" les champs (tout ca avec des regexp de substitution - attention avec le HTML aux quantificateurs, eviter les "avides"- et un split)
4/ enfin, toujours pour chaque ligne "données", stocker les données dans ta DB(via DBI et le DBD adequat)

Après, plus qu'a faire un cron avec le script pour chargement quotidien

Bon, je dis avec Perl parce que ce language est idéal pour ce type de traitement, mais tout autre language qui gere les regexp est envisageable...

Il ne te reste plus qu'a mettre les mains dans le camboui pour developper !!!




vale56
R.A.S

Messages : 17 322
Inscrit le 17/12/02
Ville : les eaux troubles de l' étang de rah
Non connecté
  Posté le 26 February 2005 - 18 h 11 m 32 s
langage !!!! :x :x :x :pitre: :pitre: :pitre: :pitre:



nouveaux inscrits vous êtes invités à visiter ce topic : http://forums.france-hardware.com/disc/gen/sujet-61650.html

bernie38
Waldorf (le pote à Statler)

Messages : 11 452
Inscrit le 28/08/03
Ville : Claix
Non connecté
  Posté le 26 February 2005 - 18 h 18 m 03 s


Le 26 février 2005 - 18 h 11, vale56 a écrit :
langage !!!! :x :x :x :pitre: :pitre: :pitre: :pitre:

et oui, va falloir que tu lui donnes des cours d'orthographe française :lol: :lol: :lol:



La Montagne n'est pas dangereuse : on ne peut qu'y perdre la vie, tandis qu'en ville on devient bête et méchant
Voltaire


Woofy
Totalement inutile, complètement indispensable

Messages : 31 551
Inscrit le 11/01/02
Ville : Lyon
Non connecté
  Posté le 26 February 2005 - 21 h 18 m 52 s


Le 26 février 2005 - 16 h 32, tempo a écrit :
Bon, je dis avec Perl parce que ce language est idéal pour ce type de traitement, mais tout autre language qui gere les regexp est envisageable...

Il ne te reste plus qu'a mettre les mains dans le camboui pour developper !!!


Je pensais a lui justement.
Tu pourrais en dire plus sur comment récupérer la page? Je sais pas faire! :)

Pis :hello: au passage, ca fait plaisir de te voir! :)




fanfouer
Un peu partout

Messages : 1 586
Inscrit le 04/01/05
Ville : annecy
Non connecté
  Posté le 26 February 2005 - 22 h 28 m 12 s
effectivement ce serai sympas de donner un peu plus de precisions sur le langage pearl car, en plus, meme si le PHP ressemble au Pearl ce n'est pas la meme chose donc moi ce que je veux c'est du PHP bete et mechant :tut:.
au passage, il a pas mal de jours, on m'a parlé de "fopen", "fgets" et "fclose" et je me demande si ca n'a pas un rapport?!
Bref, merci a tous ceux qui se penchent sur mes problemes! :yes: :D



http://www.infos-reseaux.com

tempo
Zen

Messages : 2 178
Inscrit le 14/09/02
Ville : Grenoble (Echi)
Non connecté
  Posté le 27 February 2005 - 10 h 29 m 37 s
:hello:



bon, voici un (bon ?) debut en Perl...

pour Woofy: LWP="LibWww Perl". Dans les cas simple (comme celui-ci... un simple GET HTTP) => je suggère LWP::Simple

    Code perl    
 1. #!/usr/bin/perl -w
 2. 
 3. use strict;
 4. use LWP::Simple;
 5. 
 6. # 1 - on recupere le contenu de la page dans une chaine
 7. # fastoche, non, Woof ?
 8. my $strHtmlPage=get("http://www.frimousse.org/dslam?vue=tout");
 9. 
10. # 2 - on convertit la page => liste (tableau) de lignes
11. # (pour faire un traitement ligne par ligne) => "split" sur fin de ligne
12. my @listeHtmlPage=split('\\n',$strHtmlPage);
13. 
14. # 3 - traitement ligne par ligne
15. foreach my $ligne (@listeHtmlPage){
16. 
17.         # on vire le caractere de fin de ligne
18.         chomp($ligne);
19. 
20.         # teste si c'est une ligne avec des données
21.         # non ? ligne suivante...
22.         next if ($ligne !~ m/^<tr><td><a href=/);
23. 
24.         # petit affichage de la ligne, pour permettre de verifier le traitement
25.         # (a supprimer/commenter pour script definitif..)
26.         printf("%s\\n",$ligne);
27. 
28.         # chaque cellule du tableau HTML (balise <td ...>=> donnée
29.         # => on change pour utiliser un separateur plus facile a traiter ":"
30.         # on remarque le modificateur "non avide" (?) apres le .*
31.         $ligne =~ s/\s*<td.*?>/:/g;
32. 
33.         # on vire tous les autres tags HTML de la ligne
34.         # egalement le modificateur "non avide" (?) apres le .*
35.         $ligne =~ s/<.*?>//g;
36. 
37.         # encore quelques "espaces qui trainent... on les vire aussi
38.         $ligne =~ s/\s*//g;
39. 
40.         # il ne reste plus qu'une ligne avec des données separées par ":"
41.         printf("%s\n",$ligne);
42. 
43.         # on "split" enfin pour recuperer chaque données dans une variable
44.         # (attention, il y a un ":" au debut de ligne => variable $null)
45. my ($null,$dslam,$repart,$ip,$groupe,$pool,$etat1,$etat2,$etat3,$etat4,$etat5)
=split(':',$ligne);
46. 
47.         # encore un petit affichage pour verification...
48.         printf("DSLAM:\t%s\n",$dslam);
49.         printf("Repart:\t%s\n",$repart);
50.         printf("IP:\t%s\n",$ip);
51.         printf("Groupe:\t%s\n",$groupe);
52.         printf("Pool:\t%s\n",$pool);
53.         printf("Etat 1:\t%s\n",$etat1);
54.         printf("Etat 2:\t%s\n",$etat2);
55.         printf("Etat 3:\t%s\n",$etat3);
56. printf("Etat 4:\t%s\n",$etat4);
57. printf("Etat 5:\t%s\n",$etat5);
58. 
59. }
60. 


pour la fin (j'arrive pas a passer le code en prevu dans la balise "code"... petit soucis avec 'editeur de post et Mozilla ??? corriger aussit les ":t" dans les printf, je voulais dire ":\t")
=======================
printf("Etat 4:\t%s\n",$etat4);
printf("Etat 5:\t%s\n",$etat5);

}
=======================


voila, apres ca y'a plus qu'a utiliser DBI/DBD pour enregistrer tout ca dans un SGBDR
on peut egalement penser splitter les pooles d'IP (separateur "," sur $pool)
Attention, j'ai pas mis de traitement d'erreur... (par exemple verifier si le retour du get HTTP est defini... )

Pour finir, je ne connais pas assez PHP pour faire un truc similaire... mais bon, Perl ca se trouve partout :)


Message édité 2 fois, la dernière par tempo le 27 February 2005 - 11 h 05.


Woofy
Totalement inutile, complètement indispensable

Messages : 31 551
Inscrit le 11/01/02
Ville : Lyon
Non connecté
  Posté le 27 February 2005 - 11 h 01 m 34 s
Bah ca c'est de l'explication! Merci beaucoup, je me coucherais vachement moins con ce soir! :)




tempo
Zen

Messages : 2 178
Inscrit le 14/09/02
Ville : Grenoble (Echi)
Non connecté
  Posté le 27 February 2005 - 11 h 08 m 41 s
ouaips, j'ai edité mon poste parce qu'il y a des soucis avec les anti-slash... si vous faites un copier-coller, risque d'y avoir qq soucis. bah, z'etes assez grands pour voir qu'un "n" tout seul ça n'a pas beaucoup de sens, et vous pourrez corriger par vous meme :)




Woofy
Totalement inutile, complètement indispensable

Messages : 31 551
Inscrit le 11/01/02
Ville : Lyon
Non connecté
  Posté le 27 February 2005 - 11 h 12 m 20 s
Faut qu'Erel ameliore un peu beaucoup la balise code, mais je pense qu'il ne va plus toucher cette version du forum et se concentrer dans la V2.0. :)




fanfouer
Un peu partout

Messages : 1 586
Inscrit le 04/01/05
Ville : annecy
Non connecté
  Posté le 27 February 2005 - 15 h 44 m 34 s
ok merci tempo :yes: !!! mais est-ce que je peu l'utiliser dans une page en PHP??? :???:


Message édité 1 fois, la dernière par fanfouer le 27 February 2005 - 15 h 54.

http://www.infos-reseaux.com

Woofy
Totalement inutile, complètement indispensable

Messages : 31 551
Inscrit le 11/01/02
Ville : Lyon
Non connecté
  Posté le 27 February 2005 - 15 h 52 m 58 s
Non, il faut que tu utillise pour cela un script Perl. (c'est un fichier .pl)
Il faut que ton hebergeur accepte les CGI pour cela.




fanfouer
Un peu partout

Messages : 1 586
Inscrit le 04/01/05
Ville : annecy
Non connecté
  Posté le 27 February 2005 - 15 h 56 m 01 s
je ne sais pas... en tout cas c'est free mon hebergeur et son site et fait qu'avec ca (des fichiers .pl) pour verifier les mot de passe par exemple...



http://www.infos-reseaux.com

Woofy
Totalement inutile, complètement indispensable

Messages : 31 551
Inscrit le 11/01/02
Ville : Lyon
Non connecté
  Posté le 27 February 2005 - 16 h 00 m 49 s
Ouaip, mais c'est pas dit qu'il acceptent les CGI.

Ben pour le savoir, tu fait un fichier tout simple, que tu appel avec une page html, avec l'extension .pl
et dedans tu met :

#!/usr/bin/perl -w
print "Hello World";
(y a pas plus simple pour un script perl).

S'il t'affiche Hello World, alors il accepte le perl.
Sinon, faudra que tu transpose en php, mais bon la tempo t'a file toute la methode!




fanfouer
Un peu partout

Messages : 1 586
Inscrit le 04/01/05
Ville : annecy
Non connecté
  Posté le 27 February 2005 - 16 h 29 m 41 s
aparement ya un probleme car lorsque j'appelle ma page a partir de la barre d'adressse il me met un petit symbole en haut a gauche composé d'un triangle, d'un carrée et d'un rond... est-ce bien normal tt cela?


Message édité 1 fois, la dernière par fanfouer le 27 February 2005 - 16 h 30.

http://www.infos-reseaux.com

Woofy
Totalement inutile, complètement indispensable

Messages : 31 551
Inscrit le 11/01/02
Ville : Lyon
Non connecté
  Posté le 27 February 2005 - 16 h 39 m 22 s
:???:
Ton navigateur a des actions playstations? :D

Bon plus serieusement je sais pas, ptet qu'il n'accepte pas le perl! Pour le symbole, je sais pas du tout de quoi tu veut parler.




fanfouer
Un peu partout

Messages : 1 586
Inscrit le 04/01/05
Ville : annecy
Non connecté
  Posté le 27 February 2005 - 16 h 45 m 49 s
il peut ressembler a ca... l'icon
et mon navigateur accepte forcement le perl car sinon je ne pourrait pas m'authentifier chez free...



http://www.infos-reseaux.com

1,2,3 | Suivant
Page genérée en 0.3458 secondes par RahForum 2.0 | Gzip off |  Stats |  Metaforums |  RSS
© 2004 Cerbere Systems.
Prix Matériel Informatique | Informatique Lyon | Informatique Grenoble | Informatique Annecy | Informatique Marseille | Informatique Bordeaux | Forum Informatique
ADSL | Actualité ADSL | Deligo | Appareil photo | Commande Au Volant
Creative Commons
Message Boards and Forums Directory