Bonjour,
J'essaye d'utiliser HTML:arser (avec beaucoup de mal, fo l'avouer...malgré la doc sur cpan) et donc je voudrais extraire du texte compris entre certaines balises comme par exemple le texte compris entre les balises <td></td>.
J'ai donc trouvé ce bout de code qui pourrait être un début.
http://www.developpez.net/forums/sho...ML%3A%3APArser

Du coup, j'ai plusieurs questions, pourriez vous m'aider à modifier ce bout de code??
Et enfin, je voudrais mettre le résultat dans un fichier texte pour commencer, pour tester puis à terme dans une base de données mysql.
J'ai vu plusieurs possibilités comme celle-ci par exemple :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
open (FILE,'>C:/sanstag.txt') || die "Impossible d'écrire : $!";
While () {
   print FILE $text;
}
close(FILE);
Et pour intégrer ça dans le bout de code, ça me donne ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
 
use strict;
use diagnostics;
use LWP::Simple;
use Data::Dumper;
use HTML::Parser ();
 
my $code = get('blabla.html');
 
{
  my $in_object = 0;
 
sub start {
    my ($tag, $text) = @_;
    if( not $in_object ){
        if( $tag eq 'body' ) {
            print FILE $text;
            $in_object++;
        }
    } else {
        print FILE $text;
    }
}
 
  sub end {
    my ($tag, $text) = @_;
    if( $in_object ) {
      print FILE $text;
      $in_object-- if( $tag eq 'body' );
    }
  }
 
  sub text {
    my $text = shift;
    if( $in_object ){
      print FILE $text;
    }
  }
}
open (FILE,'>C:/fichier1.txt') || die "Impossible d'écrire : $!";
 
my $p = HTML::Parser->new( api_version => 3,
                         start_h => [\&start, "tagname, text"],
                         end_h   => [\&end,   "tagname, text"],
                         text_h => [\&text, "text"]
                       );
 
$p->parse( $code );
 
close(FILE);
ce qui ne marche pas....

Voilà, merci d'avance de m'aider!
Virigine