Quel language pour extraire des informations d'une page web

Thelann Messages postés 1 Statut Membre -  
 Thelann -
Bonjour à toutes et à tous,

Afin d'automatiser mes tâches, je souhaite créer un petit executable me permettant d'extraire des données d'une page Web. Plus précisemment, je travaille avec un CRM appelé SalesForce, et l'idée serait de pouvoir dupliquer facilement en local la base de données contenue dans ce CRM. Je ne peux malheureusement pas faire appel aux fonctions d'export car je souhaite que chaque utilisateur puisse garder une version locale de sa base, et certains n'ont pas les droits nécessaires.

Dans ce cadre, je souhaiterais savoir quel(s) language(s) vous semble le plus adapté. Je touche principalement au C, mais il me semblerait logique de faire appel à un language orienté Web (php/Javascript). Je n'en connais que peu mais je suis disposée à y passer du temps sans problème.

Je suis à votre disposition pour toute info complémentaire =).

1 réponse

  1. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
     
    Salut Thelann,

    En Perl, cela peut être aussi simple que :

    #!/usr/bin/perl -w
    use strict;
    use LWP::Simple;
    use HTML::TreeBuilder::XPath;
    
    # récupère la page d'accueil de CCM
    my $page = get('http://www.commentcamarche.net/');
    # récupère le titre des dernières astuces
    my $tree = HTML::TreeBuilder::XPath->new;
    $tree->parse_content($page);
    for my $articles ($tree->findnodes(q{//div[@class="middleBox first"]}))
    {
        for my $article ($articles->clone->findvalues(q{//a}))
        {
            print $article . "\n";
        }
    }

    Dal
    1
    1. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
       
      Note que Perl est un langage interprété. Ce type de script est donc exécuté par l'interpréteur perl (après avoir installé les modules LWP::Simple et HTML::TreeBuilder::XPath avec CPAN).

      Donc tu n'auras pas un "petit executable" comme tu dis. Mais je suppose que cela ne te gène pas véritablement, car tu cites d'autres langages interprétés "php/Javascript").


      Dal
      0
    2. Thelann
       
      En effet, je suis partie sur le principe du petit exécutable, mais d'autres options sont bien sûr envisageables. Je ferais un joli ReadMe =).

      Merci pour l'info, je vais tenter.

      Tschüss !!
      0
    3. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
       
      Sous Perl, fait ta documentation en POD dans les sources. Des exemples là : https://woufeil.developpez.com/tutoriels/perl/pod/ et là : http://perl.mines-albi.fr/DocFr/perlpod.html

      Si tu fais beaucoup de requêtes, LWP::UserAgent; est plus complet et rapide que LWP::Simple; (tu trouves plein d'exemples d'utilisation sur le Net).

      Si tu tiens à ton petit exécutable et que tu pratiques le C, tu as libxml2 (du projet Gnome, je ne l'ai jamais utilisé, mais on en dit du bien), qui sait aussi évaluer des expressions XPath. Tu pourras utiliser libcurl pour récupérer les pages (qui marche très bien).

      http://xmlsoft.org/
      https://curl.se/libcurl/c/

      Cela ne sera pas vraiment fait en 2 minutes comme avec Perl, mais c'est un choix :-)


      Dal
      0
    4. Thelann
       
      Pour mon utilisation perso, je passerais probablement directement par l'interpréteur.
      Si les collègues galèrent, alors j'aviserais. Je me doutais bien que des projets devaient déjà être en cours. Mais nous n'y sommes pas encore.

      Merci encore, c'est apprécié.
      0