Forum général.général Aspirer un site avec plein de JavaScript

Posté par  (site web personnel) .
Étiquettes : aucune
0
6
jan.
2006
Bonjour dans mon entreprise (sic) de recherche d'emploi, j'ai l'intention de récupérer quelques adresses d'entreprises de la région nantaise.

Voici deux ans, pour la même raison, j'avais utilisé atlanticiels que j'avais aspiré pour en récupoérer ce que je voulais : email, personne éventuellement dévolu à la RH, etc...

Je me lance dans la même procédure, fort de mes progrès en perl, et voudrait aspirer l'annuaire de toutes les boites qui m'intéressent.

Quand je tombe là dessus
http://annuairetic.paysdelaloire.cci.fr/index.asp?from=2&(...)

Je peux tapper "informatique" dans la input box à mot clé et tomber sur une longue liste que j'aimerai bien télécharger.

Problème, il faut cliquer sur un bouton OK, de type submit et je ne parviens pas à récupérer cette fichu URL tombant directement sur la liste, ainsi que le contenu de chaque fiche.
Vous me comprendrez mieux en essayant.

Quelqu'un a t-il une idée de manipulation ? Dois-je mieux utiliser un WWW:Mechanize en perl, ou triturer wget (ou htttrack) ?

Merci d'avance :-)
  • # Utilise perl + LWP + HTML::Form + HTML::Parser

    Posté par  . Évalué à 3.

    Je ne pense pas que tu puisses faire ça avec wget. En revanche tu peux faire ça avec perl et quelques petits modules, notamment HTML::Parser, et HTML::Form. Tu peux écrire des choses comme ça :
       
       my $url =      'http://annuairetic.paysdelaloire.cci.fr/index.asp?from=2&(...)
       my $ua = LWP::UserAgent->new(
       agent => 'Mozilla/4.73 [en] (X11; I; Linux 2.2.16 i686; Nav)' );
      
        # récupère le formulaire la première fois. 
        $req = HTTP::Request->new( GET => "${url}" );
        # envoie la requête HTTP
        $res = $ua->request($req);
        die $res->status_line if not $res->is_success;
    
        # récupère le formulaire HTML (ici, le premier de la page, de toute
        # façon c'est le seul) ...
        $form = ( HTML::Form->parse( $res->content, $url ) )[0];
        # on remplit la zone d'input avec "Informatique"
        $form->find_input('MotsCles')->value("Informatique");
        # on soumet le formulaire ...
        $res = $ua->request( $form->click );
        die $res->status_line if not $res->is_success;
    
        # tu as maintenant les résultats dans $res->content
        ...
    
    Code non testé sur ce formulaire précis, mais enfin voilà l'idée ...
  • # C'est pas joli-joli

    Posté par  . Évalué à 2.

    Dans les conditions d'utilisation :


    En conséquence, l'utilisateur s'engage notamment à ne pas reproduire, adapter, extraire, céder ou diffuser (même gratuitement), réutiliser ou commercialiser tout ou partie de ces données, sous quelque forme que ce soit et pour quelque raison que ce soit, sauf accord écrit, exprès et préalable donné par les CCI des Pays de la Loire.
    • [^] # Re: C'est pas joli-joli

      Posté par  (site web personnel) . Évalué à 0.

      J'en ai rien à f***. Il s'agit pour moi de trouver un boulot, j'estime que c'est plus important que de suivre une règle qu'en enfreignant je ne dérange personne.

      Si je portais préjudice à qqun, là d'accord, ça me dérangerai.

      Ma limite à moi est : tant que mon action ne dérange personne, je ne vois pas pourquoi je me generai.

      Autrement dit : la liberté des uns s'arrête ou commence les autres.

      Pour poursuivre l'examen philosophique, en trouvant un boulot, je couterai moins cher aux assedics, donc j'aide la société.

      Je choisis quoi ? Suivre une règle stupide ou aider la société ?

      Moi j'ai choisi.

      « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.