[perl] parsing html

Bonjour,
Je voudrais récupérer des données affichées sur une pages web à partir d'une base de donnée en faisant du parsing html à l'aide de perl.
Quelqu'un peut m'aider s'il vous plaît?
Merci d'avance!

4 réponses

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Salut,

    regarde sur CPAN le module HTML::PARSER

    https://metacpan.org/pod/release/GAAS/HTML-Parser-3.55/Parser.pm

    lami20j
    1. Tout d'abord,merci pour ton aide,
      mais je t'avoue que je ne suis pas un spécialiste en perl et que je n'ai presque rien compris à ce lien, surtout que c'est en anglais!
      et en plus c une adresse html que je veux donner a perl pourqu'il me ressorte ce que je veux recuperer.
      J'ai utilisé ce code la pr recuperer les liens des dites web qui sont dans la page:

      use LWP::UserAgent;
      use HTML::LinkExtor;
      use URI::URL;

      $url = " http://tibrvrdtigdfidev1:7580/routers/"; # for instance
      $ua = LWP::UserAgent->new;

      # Set up a callback that collect image links
      my @sites = ();
      sub callback {
      my($tag, %links) = @_;
      return if $tag ne 'a'; # we only look closer at <img ...>
      push(@sites, values %links);
      }

      # Make the parser. Unfortunately, we don't know the base yet
      # (it might be diffent from $url)
      $p = HTML::LinkExtor->new(\&callback);

      # Request document and parse it as it arrives
      $res = $ua->request(HTTP::Request->new(GET => $url),
      sub {$p->parse($_[0])});

      # Expand all image URLs to absolute ones
      my $base = $res->base;
      @sites = map { $_ = url($_, $base)->abs; } @sites;

      # Print them out
      print join ("\n", @sites), "\n";

      Mais les données qui viennent de la base contiennent aussi des balises <a href> donc je ne vois pas prquoi elles ne sont pas affichées comme les autres liens,

      J'espère que j'ai été assez clair :)
      et que tu pourras m'aider!
    2. C'est peut etre parceque la page que je veux parser est protegee par nu mot de passe!
      alors quesquil faut mettre en plus dans la fonction pr entrer un login et mot de passe automatikmnt?
      Merci
  2. Modérateur
    Re,

    je suis au boulot donc je ne peux pas tester. Je vais regarder ce soir.

    En revanche j'ai besoin de savoir ce que tu veux récuperer avec un peu plus de précision. Merci.

    lami20j
    1. re,
      en fait, c'est une page qui affiche une liste de noms de routeurs (en mettant un lien pour chaque routeur pour pouvoir voir ses infos et les autres routeurs connectes a celui la)
  3. Modérateur
    1. Modérateur
      Salut,

      euh... si tu veux j'en fais en Python.

      Je suis d'accord avec toi ;) Ca m'evitera de travailler ce soir :-)

      lami20j
    2. Modérateur
      @lami20j:-)

      Non non, je ne fais que proposer, je n'impose rien.
    3. @lami20jeuh.. je vais essayer de leur proposer ac au boulot mais je sais pas s'il accepterons :)
      je te tiens au courant!
      merci
    4. Modérateur
      @sebsauvageQui parle d'imposer quelquechose?: ;)

      D'ailleurs je pense que tu sais dans quel esprit je parle :-)

      lami20j
    5. Modérateur
      @lami20jdans quel esprit je parle

      Oups, j'ai fait une erreur ;)

      Je voulais dire dans quel esprit je perle :-)

      lami20j