Le web                     Crawler                        Autres m´thodes
                                                                  e                              Exemple




                           Captation de donn´es web
                                            e

                                     Camille Maussang

                                     camille.maussang@rtgi.fr
                                              RTGI


                                         IC05 - A09




Camille Maussang                                                            camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                     Crawler   Autres m´thodes
                                             e                              Exemple




         Qui suis-je ?




Camille Maussang                                       camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                     Crawler           Autres m´thodes
                                                     e                              Exemple




         Qui suis-je ?
               Camille Maussang (cmaussan)




Camille Maussang                                               camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                      Crawler          Autres m´thodes
                                                     e                              Exemple




         Qui suis-je ?
               Camille Maussang (cmaussan)
               Chef du dev chez RTGI...




Camille Maussang                                               camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                        Crawler                  Autres m´thodes
                                                               e                              Exemple




         Qui suis-je ?
               Camille Maussang (cmaussan)
               Chef du dev chez RTGI...
               ... qui fabrique des outils d’analyse du web social




Camille Maussang                                                         camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                        Crawler                     Autres m´thodes
                                                                  e                              Exemple




         Qui suis-je ?
               Camille Maussang (cmaussan)
               Chef du dev chez RTGI...
               ... qui fabrique des outils d’analyse du web social
               ... en captant des donn´es sur le web ;)
                                      e




Camille Maussang                                                            camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                     Crawler           Autres m´thodes
                                                     e                              Exemple




Qu’est-ce que le web et comment le saisir ?




         Le web est un corpus de documents




Camille Maussang                                               camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                     Crawler           Autres m´thodes
                                                     e                              Exemple




Qu’est-ce que le web et comment le saisir ?




         Le web est un corpus de documents
               ouvert,




Camille Maussang                                               camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                       Crawler         Autres m´thodes
                                                     e                              Exemple




Qu’est-ce que le web et comment le saisir ?




         Le web est un corpus de documents
               ouvert,
               h´t´rog`ne,
                ee e




Camille Maussang                                               camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                         Crawler       Autres m´thodes
                                                     e                              Exemple




Qu’est-ce que le web et comment le saisir ?




         Le web est un corpus de documents
               ouvert,
               h´t´rog`ne,
                ee e
               et dynamique.




Camille Maussang                                               camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                     Crawler           Autres m´thodes
                                                     e                              Exemple




Qu’est-ce que le web et comment le saisir ?



         Le web peut ˆtre repr´sent´ par des graphes
                     e        e    e




Camille Maussang                                               camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                       Crawler         Autres m´thodes
                                                     e                              Exemple




Qu’est-ce que le web et comment le saisir ?



         Le web peut ˆtre repr´sent´ par des graphes
                     e        e    e
               o` les noeuds sont :
                u




Camille Maussang                                               camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                              Crawler   Autres m´thodes
                                                      e                              Exemple




Qu’est-ce que le web et comment le saisir ?



         Le web peut ˆtre repr´sent´ par des graphes
                     e        e    e
               o` les noeuds sont :
                u
                       des pages,




Camille Maussang                                                camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                              Crawler   Autres m´thodes
                                                      e                              Exemple




Qu’est-ce que le web et comment le saisir ?



         Le web peut ˆtre repr´sent´ par des graphes
                     e        e    e
               o` les noeuds sont :
                u
                       des pages,
                       des sites,




Camille Maussang                                                camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                              Crawler   Autres m´thodes
                                                      e                              Exemple




Qu’est-ce que le web et comment le saisir ?



         Le web peut ˆtre repr´sent´ par des graphes
                     e        e    e
               o` les noeuds sont :
                u
                       des pages,
                       des sites,
                       des mots,




Camille Maussang                                                camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                           Crawler     Autres m´thodes
                                                     e                              Exemple




Qu’est-ce que le web et comment le saisir ?



         Le web peut ˆtre repr´sent´ par des graphes
                     e        e    e
               o` les noeuds sont :
                u
                       des pages,
                       des sites,
                       des mots,
                       ou des gens,




Camille Maussang                                               camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                           Crawler     Autres m´thodes
                                                     e                              Exemple




Qu’est-ce que le web et comment le saisir ?



         Le web peut ˆtre repr´sent´ par des graphes
                     e        e    e
               o` les noeuds sont :
                u
                       des pages,
                       des sites,
                       des mots,
                       ou des gens,
               et les arcs des liens.




Camille Maussang                                               camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                     Crawler           Autres m´thodes
                                                     e                              Exemple




Qu’est-ce que le web et comment le saisir ?



         Capter des donn´es sur le web requiert un certain nombre de
                        e
         ressources




Camille Maussang                                               camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                      Crawler          Autres m´thodes
                                                     e                              Exemple




Qu’est-ce que le web et comment le saisir ?



         Capter des donn´es sur le web requiert un certain nombre de
                        e
         ressources
               Bande passante




Camille Maussang                                               camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                      Crawler          Autres m´thodes
                                                     e                              Exemple




Qu’est-ce que le web et comment le saisir ?



         Capter des donn´es sur le web requiert un certain nombre de
                        e
         ressources
               Bande passante
               Stockage




Camille Maussang                                               camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                      Crawler          Autres m´thodes
                                                     e                              Exemple




Qu’est-ce que le web et comment le saisir ?



         Capter des donn´es sur le web requiert un certain nombre de
                        e
         ressources
               Bande passante
               Stockage
               Temps machine




Camille Maussang                                               camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                     Crawler   Autres m´thodes
                                             e                              Exemple




Qu’est-ce que le web et comment le saisir ?



         Donc :




Camille Maussang                                       camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                      Crawler   Autres m´thodes
                                              e                              Exemple




Qu’est-ce que le web et comment le saisir ?



         Donc :
               Que cherchons-nous ?




Camille Maussang                                        camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                       Crawler                 Autres m´thodes
                                                             e                              Exemple




Qu’est-ce que le web et comment le saisir ?



         Donc :
               Que cherchons-nous ?
               Que faire pour r´cup´rer ce qui nous est important ?
                               e e




Camille Maussang                                                       camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                       Crawler                 Autres m´thodes
                                                             e                              Exemple




Qu’est-ce que le web et comment le saisir ?



         Donc :
               Que cherchons-nous ?
               Que faire pour r´cup´rer ce qui nous est important ?
                               e e
               Toujours penser « heuristiques »...




Camille Maussang                                                       camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                        Crawler                Autres m´thodes
                                                             e                              Exemple




Qu’est-ce que le web et comment le saisir ?



         Donc :
               Que cherchons-nous ?
               Que faire pour r´cup´rer ce qui nous est important ?
                               e e
               Toujours penser « heuristiques »...
               ... et « effets de bord »!




Camille Maussang                                                       camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                     Crawler   Autres m´thodes
                                             e                              Exemple




Qu’est-ce que le web et comment le saisir ?




         Ne jamais oublier !




Camille Maussang                                       camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                     Crawler   Autres m´thodes
                                             e                              Exemple




Qu’est-ce que le web et comment le saisir ?




         Ne jamais oublier !
         Le web c’est




Camille Maussang                                       camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                      Crawler            Autres m´thodes
                                                       e                              Exemple




Qu’est-ce que le web et comment le saisir ?




         Ne jamais oublier !
         Le web c’est n’importe qui (ouvert)




Camille Maussang                                                 camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                      Crawler                 Autres m´thodes
                                                            e                              Exemple




Qu’est-ce que le web et comment le saisir ?




         Ne jamais oublier !
         Le web c’est n’importe qui (ouvert) qui publie n’importe quoi
         (h´t´rog`ne)
           ee e




Camille Maussang                                                      camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                      Crawler                 Autres m´thodes
                                                            e                              Exemple




Qu’est-ce que le web et comment le saisir ?




         Ne jamais oublier !
         Le web c’est n’importe qui (ouvert) qui publie n’importe quoi
         (h´t´rog`ne) n’importe quand (dynamique).
           ee e




Camille Maussang                                                      camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                     Crawler         Autres m´thodes
                                                   e                              Exemple




D´finitions
 e


         Normes, recommandations et standards




Camille Maussang                                             camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                      Crawler               Autres m´thodes
                                                          e                              Exemple




D´finitions
 e


         Normes, recommandations et standards
               Norme (ISO/RFC) : HTTP, URL, SGML, HTML 1-2, MIME




Camille Maussang                                                    camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                      Crawler               Autres m´thodes
                                                          e                              Exemple




D´finitions
 e


         Normes, recommandations et standards
               Norme (ISO/RFC) : HTTP, URL, SGML, HTML 1-2, MIME
               Recommandation W3C : HTML 3-4-5, XHTML 1, CSS, DOM




Camille Maussang                                                    camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                      Crawler                Autres m´thodes
                                                           e                               Exemple




D´finitions
 e


         Normes, recommandations et standards
               Norme (ISO/RFC) : HTTP, URL, SGML, HTML 1-2, MIME
               Recommandation W3C : HTML 3-4-5, XHTML 1, CSS, DOM
               Standards : PDF et Flash (Taux de p´n´tration > 99%)
                                                  e e




Camille Maussang                                                      camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                      Crawler                Autres m´thodes
                                                           e                               Exemple




D´finitions
 e


         Normes, recommandations et standards
               Norme (ISO/RFC) : HTTP, URL, SGML, HTML 1-2, MIME
               Recommandation W3C : HTML 3-4-5, XHTML 1, CSS, DOM
               Standards : PDF et Flash (Taux de p´n´tration > 99%)
                                                  e e

         Web dynamique




Camille Maussang                                                      camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                       Crawler                 Autres m´thodes
                                                             e                              Exemple




D´finitions
 e


         Normes, recommandations et standards
               Norme (ISO/RFC) : HTTP, URL, SGML, HTML 1-2, MIME
               Recommandation W3C : HTML 3-4-5, XHTML 1, CSS, DOM
               Standards : PDF et Flash (Taux de p´n´tration > 99%)
                                                  e e

         Web dynamique
               server-side : CGI, PHP, Perl, Python, Ruby, JSP, ASP




Camille Maussang                                                       camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                        Crawler                  Autres m´thodes
                                                               e                              Exemple




D´finitions
 e


         Normes, recommandations et standards
               Norme (ISO/RFC) : HTTP, URL, SGML, HTML 1-2, MIME
               Recommandation W3C : HTML 3-4-5, XHTML 1, CSS, DOM
               Standards : PDF et Flash (Taux de p´n´tration > 99%)
                                                  e e

         Web dynamique
               server-side : CGI, PHP, Perl, Python, Ruby, JSP, ASP
               client-side : Javascript, Flash, ActiveX, Applet Java




Camille Maussang                                                         camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                     Crawler   Autres m´thodes
                                             e                              Exemple




Prologue

         Principe




Camille Maussang                                       camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                      Crawler   Autres m´thodes
                                              e                              Exemple




Prologue

         Principe
               T´l´charger une page
                ee




Camille Maussang                                        camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                                   Crawler                                 Autres m´thodes
                                                                                         e                                    Exemple




Prologue

         Principe
                T´l´charger une page
                 ee

         $ wget ’ http ::// www . example . org / ’ -O page . html
         $ curl ’ http ::// www . example . org / ’ > page . html
         $ perl - MLWP :: Simple -e ’ print get ( " http :// www . example . org / " ) ’ > page . html




Camille Maussang                                                                                         camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                                   Crawler                                 Autres m´thodes
                                                                                         e                                    Exemple




Prologue

         Principe
                T´l´charger une page
                 ee

         $ wget ’ http ::// www . example . org / ’ -O page . html
         $ curl ’ http ::// www . example . org / ’ > page . html
         $ perl - MLWP :: Simple -e ’ print get ( " http :// www . example . org / " ) ’ > page . html



         D´j` des probl`mes
          ea           e




Camille Maussang                                                                                         camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                                   Crawler                                 Autres m´thodes
                                                                                         e                                    Exemple




Prologue

         Principe
                T´l´charger une page
                 ee

         $ wget ’ http ::// www . example . org / ’ -O page . html
         $ curl ’ http ::// www . example . org / ’ > page . html
         $ perl - MLWP :: Simple -e ’ print get ( " http :// www . example . org / " ) ’ > page . html



         D´j` des probl`mes
          ea           e
                Type de fichier




Camille Maussang                                                                                         camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                                   Crawler                                 Autres m´thodes
                                                                                         e                                    Exemple




Prologue

         Principe
                T´l´charger une page
                 ee

         $ wget ’ http ::// www . example . org / ’ -O page . html
         $ curl ’ http ::// www . example . org / ’ > page . html
         $ perl - MLWP :: Simple -e ’ print get ( " http :// www . example . org / " ) ’ > page . html



         D´j` des probl`mes
          ea           e
                Type de fichier
                Encodage




Camille Maussang                                                                                         camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                                   Crawler                                 Autres m´thodes
                                                                                         e                                    Exemple




Prologue

         Principe
                T´l´charger une page
                 ee

         $ wget ’ http ::// www . example . org / ’ -O page . html
         $ curl ’ http ::// www . example . org / ’ > page . html
         $ perl - MLWP :: Simple -e ’ print get ( " http :// www . example . org / " ) ’ > page . html



         D´j` des probl`mes
          ea           e
                Type de fichier
                Encodage
                Contenu (HTML)




Camille Maussang                                                                                         camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                     Crawler   Autres m´thodes
                                             e                              Exemple




Crawler



         Principe




Camille Maussang                                       camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                      Crawler   Autres m´thodes
                                              e                              Exemple




Crawler



         Principe
               T´l´charger 1 page
                ee




Camille Maussang                                        camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                         Crawler   Autres m´thodes
                                                 e                              Exemple




Crawler



         Principe
               T´l´charger 1 page
                ee
               Extraire les liens




Camille Maussang                                           camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                         Crawler                 Autres m´thodes
                                                               e                              Exemple




Crawler



         Principe
               T´l´charger 1 page
                ee
               Extraire les liens
               T´l´charger les pages point´es par les liens
                ee                        e




Camille Maussang                                                         camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                         Crawler                 Autres m´thodes
                                                               e                              Exemple




Crawler



         Principe
               T´l´charger 1 page
                ee
               Extraire les liens
               T´l´charger les pages point´es par les liens
                ee                        e
               etc. etc.




Camille Maussang                                                         camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                                 Crawler                            Autres m´thodes
                                                                                  e                                   Exemple




Crawler
  1      use strict ; use warnings ;
  2      use LWP :: Simple ;
  3
  4      my   ( $max_depth , @seed ) = @ARGV or die ( ’ need depth and url ( s ) ’ );
  5      my   @ a l r e a d y _ v i s i t e d = ();
  6      my   $depth = 0;
  7      my   @to_visit = @seed ;
  8
  9      while ( $depth <= $max_depth && @to_visit ) {
 10          print " crawling depth $depth  n " ;
 11          my @links = ();
 12          for my $url ( @to_visit ) {
 13               if ( my $content = get ( $url ) ) {
 14                     while ( $content =~ m / <a href ="([^"]+)" / gi ) { push @links , $1 }
 15               }
 16               push @already_visited , $url ;
 17               print " $url visited . n " ;
 18          }
 19          @to_visit = ();
 20          for my $url_to_check ( @links ) {
 21               my $to_push = 0;
 22               for my $url_visited ( @ a l r e a d y _ v i s i t e d ) {
 23                     if ( $url_to_check eq $url_visited ) { $to_push = 0; last ; }
 24                     $to_push = 1;
 25               }
 26               push @to_visit , $url_to_check
 27                     if ( $to_push && ! grep { $_ eq $url_to_check } @to_visit );
 28          }
 29          $depth ++;
 30      }
 31      print " end . n " ;



Camille Maussang                                                                                 camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                       Crawler                    Autres m´thodes
                                                                e                              Exemple




Crawler




               M´triques (distance, profondeur, etc.)
                e




Camille Maussang                                                          camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                       Crawler                    Autres m´thodes
                                                                e                              Exemple




Crawler




               M´triques (distance, profondeur, etc.)
                e
               Performance (goulots d’´tranglement)
                                      e




Camille Maussang                                                          camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                       Crawler                    Autres m´thodes
                                                                e                              Exemple




Crawler




               M´triques (distance, profondeur, etc.)
                e
               Performance (goulots d’´tranglement)
                                      e
               Scalabilit´ (de 1 page ` 1G pages)
                         e            a




Camille Maussang                                                          camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                     Crawler   Autres m´thodes
                                             e                              Exemple




Crawler




Camille Maussang                                       camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                     Crawler   Autres m´thodes
                                             e                              Exemple




Crawler

         De nouveaux probl`mes
                          e




Camille Maussang                                       camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                     Crawler   Autres m´thodes
                                             e                              Exemple




Crawler

         De nouveaux probl`mes
                          e
               Politesse




Camille Maussang                                       camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                          Crawler                  Autres m´thodes
                                                                 e                              Exemple




Crawler

         De nouveaux probl`mes
                          e
               Politesse
                       DoS (Denial of Service) : DNS, Serveurs HTTP




Camille Maussang                                                           camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                           Crawler                  Autres m´thodes
                                                                  e                               Exemple




Crawler

         De nouveaux probl`mes
                          e
               Politesse
                       DoS (Denial of Service) : DNS, Serveurs HTTP
                       Blacklistage officiel (robots.txt, sitemap.xml, etc.)




Camille Maussang                                                             camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                           Crawler                  Autres m´thodes
                                                                  e                               Exemple




Crawler

         De nouveaux probl`mes
                          e
               Politesse
                       DoS (Denial of Service) : DNS, Serveurs HTTP
                       Blacklistage officiel (robots.txt, sitemap.xml, etc.)
                       Blacklistage officieux (cloaking, pi`ges ` robot)
                                                         e    a




Camille Maussang                                                             camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                           Crawler                  Autres m´thodes
                                                                  e                               Exemple




Crawler

         De nouveaux probl`mes
                          e
               Politesse
                       DoS (Denial of Service) : DNS, Serveurs HTTP
                       Blacklistage officiel (robots.txt, sitemap.xml, etc.)
                       Blacklistage officieux (cloaking, pi`ges ` robot)
                                                         e    a
               Addressage




Camille Maussang                                                             camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                           Crawler                  Autres m´thodes
                                                                  e                               Exemple




Crawler

         De nouveaux probl`mes
                          e
               Politesse
                       DoS (Denial of Service) : DNS, Serveurs HTTP
                       Blacklistage officiel (robots.txt, sitemap.xml, etc.)
                       Blacklistage officieux (cloaking, pi`ges ` robot)
                                                         e    a
               Addressage
                       Normalisation d’URL (doublons)




Camille Maussang                                                             camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                           Crawler                  Autres m´thodes
                                                                  e                               Exemple




Crawler

         De nouveaux probl`mes
                          e
               Politesse
                       DoS (Denial of Service) : DNS, Serveurs HTTP
                       Blacklistage officiel (robots.txt, sitemap.xml, etc.)
                       Blacklistage officieux (cloaking, pi`ges ` robot)
                                                         e    a
               Addressage
                       Normalisation d’URL (doublons)
                       Site ou page ?




Camille Maussang                                                             camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                           Crawler                  Autres m´thodes
                                                                  e                               Exemple




Crawler

         De nouveaux probl`mes
                          e
               Politesse
                       DoS (Denial of Service) : DNS, Serveurs HTTP
                       Blacklistage officiel (robots.txt, sitemap.xml, etc.)
                       Blacklistage officieux (cloaking, pi`ges ` robot)
                                                         e    a
               Addressage
                       Normalisation d’URL (doublons)
                       Site ou page ?
                       Plusieurs permaliens pour un seul contenu (GYM aide un peu)




Camille Maussang                                                             camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                           Crawler                  Autres m´thodes
                                                                  e                               Exemple




Crawler

         De nouveaux probl`mes
                          e
               Politesse
                       DoS (Denial of Service) : DNS, Serveurs HTTP
                       Blacklistage officiel (robots.txt, sitemap.xml, etc.)
                       Blacklistage officieux (cloaking, pi`ges ` robot)
                                                         e    a
               Addressage
                       Normalisation d’URL (doublons)
                       Site ou page ?
                       Plusieurs permaliens pour un seul contenu (GYM aide un peu)
               Autres...




Camille Maussang                                                             camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                              Crawler               Autres m´thodes
                                                                  e                               Exemple




Crawler

         De nouveaux probl`mes
                          e
               Politesse
                       DoS (Denial of Service) : DNS, Serveurs HTTP
                       Blacklistage officiel (robots.txt, sitemap.xml, etc.)
                       Blacklistage officieux (cloaking, pi`ges ` robot)
                                                         e    a
               Addressage
                       Normalisation d’URL (doublons)
                       Site ou page ?
                       Plusieurs permaliens pour un seul contenu (GYM aide un peu)
               Autres...
                       Javascript




Camille Maussang                                                             camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                              Crawler               Autres m´thodes
                                                                  e                               Exemple




Crawler

         De nouveaux probl`mes
                          e
               Politesse
                       DoS (Denial of Service) : DNS, Serveurs HTTP
                       Blacklistage officiel (robots.txt, sitemap.xml, etc.)
                       Blacklistage officieux (cloaking, pi`ges ` robot)
                                                         e    a
               Addressage
                       Normalisation d’URL (doublons)
                       Site ou page ?
                       Plusieurs permaliens pour un seul contenu (GYM aide un peu)
               Autres...
                       Javascript
                       Deep web




Camille Maussang                                                             camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                              Crawler               Autres m´thodes
                                                                  e                               Exemple




Crawler

         De nouveaux probl`mes
                          e
               Politesse
                       DoS (Denial of Service) : DNS, Serveurs HTTP
                       Blacklistage officiel (robots.txt, sitemap.xml, etc.)
                       Blacklistage officieux (cloaking, pi`ges ` robot)
                                                         e    a
               Addressage
                       Normalisation d’URL (doublons)
                       Site ou page ?
                       Plusieurs permaliens pour un seul contenu (GYM aide un peu)
               Autres...
                       Javascript
                       Deep web
                       Web priv´e



Camille Maussang                                                             camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                     Crawler   Autres m´thodes
                                             e                              Exemple




Crawler

         Astuces




Camille Maussang                                       camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                       Crawler       Autres m´thodes
                                                   e                              Exemple




Crawler

         Astuces
               Utiliser les headers HTTP




Camille Maussang                                             camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                       Crawler       Autres m´thodes
                                                   e                              Exemple




Crawler

         Astuces
               Utiliser les headers HTTP
               User-agent




Camille Maussang                                             camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                       Crawler       Autres m´thodes
                                                   e                              Exemple




Crawler

         Astuces
               Utiliser les headers HTTP
               User-agent
               random et sleep




Camille Maussang                                             camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                       Crawler                 Autres m´thodes
                                                             e                              Exemple




Crawler

         Astuces
               Utiliser les headers HTTP
               User-agent
               random et sleep
               Multi-agent plutˆt que multi-thread
                               o




Camille Maussang                                                       camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                       Crawler                 Autres m´thodes
                                                             e                              Exemple




Crawler

         Astuces
               Utiliser les headers HTTP
               User-agent
               random et sleep
               Multi-agent plutˆt que multi-thread
                               o

         Principes du Focused crawler




Camille Maussang                                                       camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                       Crawler                 Autres m´thodes
                                                             e                              Exemple




Crawler

         Astuces
               Utiliser les headers HTTP
               User-agent
               random et sleep
               Multi-agent plutˆt que multi-thread
                               o

         Principes du Focused crawler
               Ne t´l´charger que les pages pertinentes
                   ee




Camille Maussang                                                       camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                       Crawler                 Autres m´thodes
                                                             e                              Exemple




Crawler

         Astuces
               Utiliser les headers HTTP
               User-agent
               random et sleep
               Multi-agent plutˆt que multi-thread
                               o

         Principes du Focused crawler
               Ne t´l´charger que les pages pertinentes
                   ee

               Indicateurs topologiques




Camille Maussang                                                       camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                       Crawler                 Autres m´thodes
                                                             e                              Exemple




Crawler

         Astuces
               Utiliser les headers HTTP
               User-agent
               random et sleep
               Multi-agent plutˆt que multi-thread
                               o

         Principes du Focused crawler
               Ne t´l´charger que les pages pertinentes
                   ee

               Indicateurs topologiques
               Indicateurs s´mantiques
                            e



Camille Maussang                                                       camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                     Crawler   Autres m´thodes
                                             e                              Exemple




Aggr´gation
    e



         Principe




Camille Maussang                                       camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                     Crawler                Autres m´thodes
                                                          e                              Exemple




Aggr´gation
    e



         Principe
         Syndication ou comment renverser l’acc`s aux donn´es
                                               e          e




Camille Maussang                                                    camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                     Crawler                Autres m´thodes
                                                          e                              Exemple




Aggr´gation
    e



         Principe
         Syndication ou comment renverser l’acc`s aux donn´es
                                               e          e

         Probl`mes
              e




Camille Maussang                                                    camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                       Crawler              Autres m´thodes
                                                          e                              Exemple




Aggr´gation
    e



         Principe
         Syndication ou comment renverser l’acc`s aux donn´es
                                               e          e

         Probl`mes
              e
               Atom, RSS, encore mille versions




Camille Maussang                                                    camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                        Crawler              Autres m´thodes
                                                           e                              Exemple




Aggr´gation
    e



         Principe
         Syndication ou comment renverser l’acc`s aux donn´es
                                               e          e

         Probl`mes
              e
               Atom, RSS, encore mille versions
               Flux complet / partiel / vide ...




Camille Maussang                                                     camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                        Crawler                    Autres m´thodes
                                                                 e                              Exemple




Aggr´gation
    e



         Principe
         Syndication ou comment renverser l’acc`s aux donn´es
                                               e          e

         Probl`mes
              e
               Atom, RSS, encore mille versions
               Flux complet / partiel / vide ...
               ... avec ou sans date, permaliens, HTML




Camille Maussang                                                           camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                     Crawler   Autres m´thodes
                                             e                              Exemple




Scraping



         Principe




Camille Maussang                                       camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                     Crawler                 Autres m´thodes
                                                           e                              Exemple




Scraping



         Principe
         Analyser une page web pour en extraire une information sp´cifique
                                                                  e




Camille Maussang                                                     camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                     Crawler                 Autres m´thodes
                                                           e                              Exemple




Scraping



         Principe
         Analyser une page web pour en extraire une information sp´cifique
                                                                  e

         Probl`mes
              e




Camille Maussang                                                     camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                      Crawler                Autres m´thodes
                                                           e                              Exemple




Scraping



         Principe
         Analyser une page web pour en extraire une information sp´cifique
                                                                  e

         Probl`mes
              e
               DOM ou Regexp ou les deux




Camille Maussang                                                     camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                      Crawler                Autres m´thodes
                                                           e                              Exemple




Scraping



         Principe
         Analyser une page web pour en extraire une information sp´cifique
                                                                  e

         Probl`mes
              e
               DOM ou Regexp ou les deux
               Template et dynamisme des pages scrap´es
                                                    e




Camille Maussang                                                     camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                       Crawler               Autres m´thodes
                                                           e                              Exemple




Scraping



         Principe
         Analyser une page web pour en extraire une information sp´cifique
                                                                  e

         Probl`mes
              e
               DOM ou Regexp ou les deux
               Template et dynamisme des pages scrap´es
                                                    e
               Flash et Javascript




Camille Maussang                                                     camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                     Crawler   Autres m´thodes
                                             e                              Exemple




API



         Principe




Camille Maussang                                       camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                       Crawler                  Autres m´thodes
                                                              e                              Exemple




API



         Principe
         Utiliser les API de certains sites pour collecter la donn´e
                                                                  e




Camille Maussang                                                        camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                       Crawler                  Autres m´thodes
                                                              e                              Exemple




API



         Principe
         Utiliser les API de certains sites pour collecter la donn´e
                                                                  e

         Probl`mes
              e




Camille Maussang                                                        camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                       Crawler                  Autres m´thodes
                                                              e                              Exemple




API



         Principe
         Utiliser les API de certains sites pour collecter la donn´e
                                                                  e

         Probl`mes
              e
               Limitations




Camille Maussang                                                        camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                       Crawler                  Autres m´thodes
                                                              e                              Exemple




API



         Principe
         Utiliser les API de certains sites pour collecter la donn´e
                                                                  e

         Probl`mes
              e
               Limitations
               API propri´taires
                         e




Camille Maussang                                                        camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                     Crawler          Autres m´thodes
                                                    e                              Exemple




Un exemple concret


         Cr´er un corpus de documents sur un th`me pr´cis avec Google
           e                                   e     e




Camille Maussang                                              camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                       Crawler        Autres m´thodes
                                                    e                              Exemple




Un exemple concret


         Cr´er un corpus de documents sur un th`me pr´cis avec Google
           e                                   e     e
               Cr´er un set de requˆtes
                 e                 e




Camille Maussang                                              camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                       Crawler          Autres m´thodes
                                                      e                              Exemple




Un exemple concret


         Cr´er un corpus de documents sur un th`me pr´cis avec Google
           e                                   e     e
               Cr´er un set de requˆtes
                 e                 e
               ´
               Ecrire un robot de captation




Camille Maussang                                                camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                           Crawler                  Autres m´thodes
                                                                  e                              Exemple




Un exemple concret


         Cr´er un corpus de documents sur un th`me pr´cis avec Google
           e                                   e     e
               Cr´er un set de requˆtes
                 e                 e
               ´
               Ecrire un robot de captation
                       Module de scraping des r´sultats de Google
                                               e
                       (avec Web::Scraper par ex.)




Camille Maussang                                                            camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                           Crawler                  Autres m´thodes
                                                                  e                              Exemple




Un exemple concret


         Cr´er un corpus de documents sur un th`me pr´cis avec Google
           e                                   e     e
               Cr´er un set de requˆtes
                 e                 e
               ´
               Ecrire un robot de captation
                       Module de scraping des r´sultats de Google
                                               e
                       (avec Web::Scraper par ex.)
                       Module d’ordonnancement




Camille Maussang                                                            camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                           Crawler                  Autres m´thodes
                                                                  e                              Exemple




Un exemple concret


         Cr´er un corpus de documents sur un th`me pr´cis avec Google
           e                                   e     e
               Cr´er un set de requˆtes
                 e                 e
               ´
               Ecrire un robot de captation
                       Module de scraping des r´sultats de Google
                                               e
                       (avec Web::Scraper par ex.)
                       Module d’ordonnancement
                       Module de « crawl »




Camille Maussang                                                            camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                           Crawler                  Autres m´thodes
                                                                  e                              Exemple




Un exemple concret


         Cr´er un corpus de documents sur un th`me pr´cis avec Google
           e                                   e     e
               Cr´er un set de requˆtes
                 e                 e
               ´
               Ecrire un robot de captation
                       Module de scraping des r´sultats de Google
                                               e
                       (avec Web::Scraper par ex.)
                       Module d’ordonnancement
                       Module de « crawl »
               Capter les donn´es :)
                              e




Camille Maussang                                                            camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                     Crawler            Autres m´thodes
                                                      e                              Exemple




Wikip´dia est ton ami :)
     e

               http://en.wikipedia.org/wiki/HTML
               http://en.wikipedia.org/wiki/Web_crawler
               http://en.wikipedia.org/wiki/Focused_crawler
               http://en.wikipedia.org/wiki/Web_scraping
               http://en.wikipedia.org/wiki/URL_normalization
               http://en.wikipedia.org/wiki/Cloaking
               http://en.wikipedia.org/wiki/User_agent
               http://en.wikipedia.org/wiki/Spider_trap
               http://en.wikipedia.org/wiki/Denial-of-service_attack
               etc.



Camille Maussang                                                camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                     Crawler            Autres m´thodes
                                                      e                              Exemple




Merci !




               http://labs.rtgi.eu/
               http://github.com/cmaussan/Picrowler
               http://github.com/cmaussan/captation-ic05-a09-tex




Camille Maussang                                                camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e
Le web                     Crawler            Autres m´thodes
                                                      e                              Exemple




Merci !




               http://labs.rtgi.eu/
               http://github.com/cmaussan/Picrowler
               http://github.com/cmaussan/captation-ic05-a09-tex




Camille Maussang                                                camille.maussang@rtgi.fr RTGI
Captation de donn´es web
                 e

Captation Ic05 A09

  • 1.
    Le web Crawler Autres m´thodes e Exemple Captation de donn´es web e Camille Maussang camille.maussang@rtgi.fr RTGI IC05 - A09 Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 2.
    Le web Crawler Autres m´thodes e Exemple Qui suis-je ? Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 3.
    Le web Crawler Autres m´thodes e Exemple Qui suis-je ? Camille Maussang (cmaussan) Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 4.
    Le web Crawler Autres m´thodes e Exemple Qui suis-je ? Camille Maussang (cmaussan) Chef du dev chez RTGI... Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 5.
    Le web Crawler Autres m´thodes e Exemple Qui suis-je ? Camille Maussang (cmaussan) Chef du dev chez RTGI... ... qui fabrique des outils d’analyse du web social Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 6.
    Le web Crawler Autres m´thodes e Exemple Qui suis-je ? Camille Maussang (cmaussan) Chef du dev chez RTGI... ... qui fabrique des outils d’analyse du web social ... en captant des donn´es sur le web ;) e Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 7.
    Le web Crawler Autres m´thodes e Exemple Qu’est-ce que le web et comment le saisir ? Le web est un corpus de documents Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 8.
    Le web Crawler Autres m´thodes e Exemple Qu’est-ce que le web et comment le saisir ? Le web est un corpus de documents ouvert, Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 9.
    Le web Crawler Autres m´thodes e Exemple Qu’est-ce que le web et comment le saisir ? Le web est un corpus de documents ouvert, h´t´rog`ne, ee e Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 10.
    Le web Crawler Autres m´thodes e Exemple Qu’est-ce que le web et comment le saisir ? Le web est un corpus de documents ouvert, h´t´rog`ne, ee e et dynamique. Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 11.
    Le web Crawler Autres m´thodes e Exemple Qu’est-ce que le web et comment le saisir ? Le web peut ˆtre repr´sent´ par des graphes e e e Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 12.
    Le web Crawler Autres m´thodes e Exemple Qu’est-ce que le web et comment le saisir ? Le web peut ˆtre repr´sent´ par des graphes e e e o` les noeuds sont : u Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 13.
    Le web Crawler Autres m´thodes e Exemple Qu’est-ce que le web et comment le saisir ? Le web peut ˆtre repr´sent´ par des graphes e e e o` les noeuds sont : u des pages, Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 14.
    Le web Crawler Autres m´thodes e Exemple Qu’est-ce que le web et comment le saisir ? Le web peut ˆtre repr´sent´ par des graphes e e e o` les noeuds sont : u des pages, des sites, Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 15.
    Le web Crawler Autres m´thodes e Exemple Qu’est-ce que le web et comment le saisir ? Le web peut ˆtre repr´sent´ par des graphes e e e o` les noeuds sont : u des pages, des sites, des mots, Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 16.
    Le web Crawler Autres m´thodes e Exemple Qu’est-ce que le web et comment le saisir ? Le web peut ˆtre repr´sent´ par des graphes e e e o` les noeuds sont : u des pages, des sites, des mots, ou des gens, Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 17.
    Le web Crawler Autres m´thodes e Exemple Qu’est-ce que le web et comment le saisir ? Le web peut ˆtre repr´sent´ par des graphes e e e o` les noeuds sont : u des pages, des sites, des mots, ou des gens, et les arcs des liens. Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 18.
    Le web Crawler Autres m´thodes e Exemple Qu’est-ce que le web et comment le saisir ? Capter des donn´es sur le web requiert un certain nombre de e ressources Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 19.
    Le web Crawler Autres m´thodes e Exemple Qu’est-ce que le web et comment le saisir ? Capter des donn´es sur le web requiert un certain nombre de e ressources Bande passante Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 20.
    Le web Crawler Autres m´thodes e Exemple Qu’est-ce que le web et comment le saisir ? Capter des donn´es sur le web requiert un certain nombre de e ressources Bande passante Stockage Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 21.
    Le web Crawler Autres m´thodes e Exemple Qu’est-ce que le web et comment le saisir ? Capter des donn´es sur le web requiert un certain nombre de e ressources Bande passante Stockage Temps machine Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 22.
    Le web Crawler Autres m´thodes e Exemple Qu’est-ce que le web et comment le saisir ? Donc : Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 23.
    Le web Crawler Autres m´thodes e Exemple Qu’est-ce que le web et comment le saisir ? Donc : Que cherchons-nous ? Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 24.
    Le web Crawler Autres m´thodes e Exemple Qu’est-ce que le web et comment le saisir ? Donc : Que cherchons-nous ? Que faire pour r´cup´rer ce qui nous est important ? e e Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 25.
    Le web Crawler Autres m´thodes e Exemple Qu’est-ce que le web et comment le saisir ? Donc : Que cherchons-nous ? Que faire pour r´cup´rer ce qui nous est important ? e e Toujours penser « heuristiques »... Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 26.
    Le web Crawler Autres m´thodes e Exemple Qu’est-ce que le web et comment le saisir ? Donc : Que cherchons-nous ? Que faire pour r´cup´rer ce qui nous est important ? e e Toujours penser « heuristiques »... ... et « effets de bord »! Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 27.
    Le web Crawler Autres m´thodes e Exemple Qu’est-ce que le web et comment le saisir ? Ne jamais oublier ! Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 28.
    Le web Crawler Autres m´thodes e Exemple Qu’est-ce que le web et comment le saisir ? Ne jamais oublier ! Le web c’est Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 29.
    Le web Crawler Autres m´thodes e Exemple Qu’est-ce que le web et comment le saisir ? Ne jamais oublier ! Le web c’est n’importe qui (ouvert) Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 30.
    Le web Crawler Autres m´thodes e Exemple Qu’est-ce que le web et comment le saisir ? Ne jamais oublier ! Le web c’est n’importe qui (ouvert) qui publie n’importe quoi (h´t´rog`ne) ee e Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 31.
    Le web Crawler Autres m´thodes e Exemple Qu’est-ce que le web et comment le saisir ? Ne jamais oublier ! Le web c’est n’importe qui (ouvert) qui publie n’importe quoi (h´t´rog`ne) n’importe quand (dynamique). ee e Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 32.
    Le web Crawler Autres m´thodes e Exemple D´finitions e Normes, recommandations et standards Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 33.
    Le web Crawler Autres m´thodes e Exemple D´finitions e Normes, recommandations et standards Norme (ISO/RFC) : HTTP, URL, SGML, HTML 1-2, MIME Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 34.
    Le web Crawler Autres m´thodes e Exemple D´finitions e Normes, recommandations et standards Norme (ISO/RFC) : HTTP, URL, SGML, HTML 1-2, MIME Recommandation W3C : HTML 3-4-5, XHTML 1, CSS, DOM Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 35.
    Le web Crawler Autres m´thodes e Exemple D´finitions e Normes, recommandations et standards Norme (ISO/RFC) : HTTP, URL, SGML, HTML 1-2, MIME Recommandation W3C : HTML 3-4-5, XHTML 1, CSS, DOM Standards : PDF et Flash (Taux de p´n´tration > 99%) e e Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 36.
    Le web Crawler Autres m´thodes e Exemple D´finitions e Normes, recommandations et standards Norme (ISO/RFC) : HTTP, URL, SGML, HTML 1-2, MIME Recommandation W3C : HTML 3-4-5, XHTML 1, CSS, DOM Standards : PDF et Flash (Taux de p´n´tration > 99%) e e Web dynamique Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 37.
    Le web Crawler Autres m´thodes e Exemple D´finitions e Normes, recommandations et standards Norme (ISO/RFC) : HTTP, URL, SGML, HTML 1-2, MIME Recommandation W3C : HTML 3-4-5, XHTML 1, CSS, DOM Standards : PDF et Flash (Taux de p´n´tration > 99%) e e Web dynamique server-side : CGI, PHP, Perl, Python, Ruby, JSP, ASP Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 38.
    Le web Crawler Autres m´thodes e Exemple D´finitions e Normes, recommandations et standards Norme (ISO/RFC) : HTTP, URL, SGML, HTML 1-2, MIME Recommandation W3C : HTML 3-4-5, XHTML 1, CSS, DOM Standards : PDF et Flash (Taux de p´n´tration > 99%) e e Web dynamique server-side : CGI, PHP, Perl, Python, Ruby, JSP, ASP client-side : Javascript, Flash, ActiveX, Applet Java Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 39.
    Le web Crawler Autres m´thodes e Exemple Prologue Principe Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 40.
    Le web Crawler Autres m´thodes e Exemple Prologue Principe T´l´charger une page ee Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 41.
    Le web Crawler Autres m´thodes e Exemple Prologue Principe T´l´charger une page ee $ wget ’ http ::// www . example . org / ’ -O page . html $ curl ’ http ::// www . example . org / ’ > page . html $ perl - MLWP :: Simple -e ’ print get ( " http :// www . example . org / " ) ’ > page . html Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 42.
    Le web Crawler Autres m´thodes e Exemple Prologue Principe T´l´charger une page ee $ wget ’ http ::// www . example . org / ’ -O page . html $ curl ’ http ::// www . example . org / ’ > page . html $ perl - MLWP :: Simple -e ’ print get ( " http :// www . example . org / " ) ’ > page . html D´j` des probl`mes ea e Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 43.
    Le web Crawler Autres m´thodes e Exemple Prologue Principe T´l´charger une page ee $ wget ’ http ::// www . example . org / ’ -O page . html $ curl ’ http ::// www . example . org / ’ > page . html $ perl - MLWP :: Simple -e ’ print get ( " http :// www . example . org / " ) ’ > page . html D´j` des probl`mes ea e Type de fichier Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 44.
    Le web Crawler Autres m´thodes e Exemple Prologue Principe T´l´charger une page ee $ wget ’ http ::// www . example . org / ’ -O page . html $ curl ’ http ::// www . example . org / ’ > page . html $ perl - MLWP :: Simple -e ’ print get ( " http :// www . example . org / " ) ’ > page . html D´j` des probl`mes ea e Type de fichier Encodage Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 45.
    Le web Crawler Autres m´thodes e Exemple Prologue Principe T´l´charger une page ee $ wget ’ http ::// www . example . org / ’ -O page . html $ curl ’ http ::// www . example . org / ’ > page . html $ perl - MLWP :: Simple -e ’ print get ( " http :// www . example . org / " ) ’ > page . html D´j` des probl`mes ea e Type de fichier Encodage Contenu (HTML) Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 46.
    Le web Crawler Autres m´thodes e Exemple Crawler Principe Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 47.
    Le web Crawler Autres m´thodes e Exemple Crawler Principe T´l´charger 1 page ee Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 48.
    Le web Crawler Autres m´thodes e Exemple Crawler Principe T´l´charger 1 page ee Extraire les liens Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 49.
    Le web Crawler Autres m´thodes e Exemple Crawler Principe T´l´charger 1 page ee Extraire les liens T´l´charger les pages point´es par les liens ee e Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 50.
    Le web Crawler Autres m´thodes e Exemple Crawler Principe T´l´charger 1 page ee Extraire les liens T´l´charger les pages point´es par les liens ee e etc. etc. Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 51.
    Le web Crawler Autres m´thodes e Exemple Crawler 1 use strict ; use warnings ; 2 use LWP :: Simple ; 3 4 my ( $max_depth , @seed ) = @ARGV or die ( ’ need depth and url ( s ) ’ ); 5 my @ a l r e a d y _ v i s i t e d = (); 6 my $depth = 0; 7 my @to_visit = @seed ; 8 9 while ( $depth <= $max_depth && @to_visit ) { 10 print " crawling depth $depth n " ; 11 my @links = (); 12 for my $url ( @to_visit ) { 13 if ( my $content = get ( $url ) ) { 14 while ( $content =~ m / <a href ="([^"]+)" / gi ) { push @links , $1 } 15 } 16 push @already_visited , $url ; 17 print " $url visited . n " ; 18 } 19 @to_visit = (); 20 for my $url_to_check ( @links ) { 21 my $to_push = 0; 22 for my $url_visited ( @ a l r e a d y _ v i s i t e d ) { 23 if ( $url_to_check eq $url_visited ) { $to_push = 0; last ; } 24 $to_push = 1; 25 } 26 push @to_visit , $url_to_check 27 if ( $to_push && ! grep { $_ eq $url_to_check } @to_visit ); 28 } 29 $depth ++; 30 } 31 print " end . n " ; Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 52.
    Le web Crawler Autres m´thodes e Exemple Crawler M´triques (distance, profondeur, etc.) e Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 53.
    Le web Crawler Autres m´thodes e Exemple Crawler M´triques (distance, profondeur, etc.) e Performance (goulots d’´tranglement) e Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 54.
    Le web Crawler Autres m´thodes e Exemple Crawler M´triques (distance, profondeur, etc.) e Performance (goulots d’´tranglement) e Scalabilit´ (de 1 page ` 1G pages) e a Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 55.
    Le web Crawler Autres m´thodes e Exemple Crawler Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 56.
    Le web Crawler Autres m´thodes e Exemple Crawler De nouveaux probl`mes e Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 57.
    Le web Crawler Autres m´thodes e Exemple Crawler De nouveaux probl`mes e Politesse Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 58.
    Le web Crawler Autres m´thodes e Exemple Crawler De nouveaux probl`mes e Politesse DoS (Denial of Service) : DNS, Serveurs HTTP Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 59.
    Le web Crawler Autres m´thodes e Exemple Crawler De nouveaux probl`mes e Politesse DoS (Denial of Service) : DNS, Serveurs HTTP Blacklistage officiel (robots.txt, sitemap.xml, etc.) Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 60.
    Le web Crawler Autres m´thodes e Exemple Crawler De nouveaux probl`mes e Politesse DoS (Denial of Service) : DNS, Serveurs HTTP Blacklistage officiel (robots.txt, sitemap.xml, etc.) Blacklistage officieux (cloaking, pi`ges ` robot) e a Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 61.
    Le web Crawler Autres m´thodes e Exemple Crawler De nouveaux probl`mes e Politesse DoS (Denial of Service) : DNS, Serveurs HTTP Blacklistage officiel (robots.txt, sitemap.xml, etc.) Blacklistage officieux (cloaking, pi`ges ` robot) e a Addressage Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 62.
    Le web Crawler Autres m´thodes e Exemple Crawler De nouveaux probl`mes e Politesse DoS (Denial of Service) : DNS, Serveurs HTTP Blacklistage officiel (robots.txt, sitemap.xml, etc.) Blacklistage officieux (cloaking, pi`ges ` robot) e a Addressage Normalisation d’URL (doublons) Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 63.
    Le web Crawler Autres m´thodes e Exemple Crawler De nouveaux probl`mes e Politesse DoS (Denial of Service) : DNS, Serveurs HTTP Blacklistage officiel (robots.txt, sitemap.xml, etc.) Blacklistage officieux (cloaking, pi`ges ` robot) e a Addressage Normalisation d’URL (doublons) Site ou page ? Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 64.
    Le web Crawler Autres m´thodes e Exemple Crawler De nouveaux probl`mes e Politesse DoS (Denial of Service) : DNS, Serveurs HTTP Blacklistage officiel (robots.txt, sitemap.xml, etc.) Blacklistage officieux (cloaking, pi`ges ` robot) e a Addressage Normalisation d’URL (doublons) Site ou page ? Plusieurs permaliens pour un seul contenu (GYM aide un peu) Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 65.
    Le web Crawler Autres m´thodes e Exemple Crawler De nouveaux probl`mes e Politesse DoS (Denial of Service) : DNS, Serveurs HTTP Blacklistage officiel (robots.txt, sitemap.xml, etc.) Blacklistage officieux (cloaking, pi`ges ` robot) e a Addressage Normalisation d’URL (doublons) Site ou page ? Plusieurs permaliens pour un seul contenu (GYM aide un peu) Autres... Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 66.
    Le web Crawler Autres m´thodes e Exemple Crawler De nouveaux probl`mes e Politesse DoS (Denial of Service) : DNS, Serveurs HTTP Blacklistage officiel (robots.txt, sitemap.xml, etc.) Blacklistage officieux (cloaking, pi`ges ` robot) e a Addressage Normalisation d’URL (doublons) Site ou page ? Plusieurs permaliens pour un seul contenu (GYM aide un peu) Autres... Javascript Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 67.
    Le web Crawler Autres m´thodes e Exemple Crawler De nouveaux probl`mes e Politesse DoS (Denial of Service) : DNS, Serveurs HTTP Blacklistage officiel (robots.txt, sitemap.xml, etc.) Blacklistage officieux (cloaking, pi`ges ` robot) e a Addressage Normalisation d’URL (doublons) Site ou page ? Plusieurs permaliens pour un seul contenu (GYM aide un peu) Autres... Javascript Deep web Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 68.
    Le web Crawler Autres m´thodes e Exemple Crawler De nouveaux probl`mes e Politesse DoS (Denial of Service) : DNS, Serveurs HTTP Blacklistage officiel (robots.txt, sitemap.xml, etc.) Blacklistage officieux (cloaking, pi`ges ` robot) e a Addressage Normalisation d’URL (doublons) Site ou page ? Plusieurs permaliens pour un seul contenu (GYM aide un peu) Autres... Javascript Deep web Web priv´e Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 69.
    Le web Crawler Autres m´thodes e Exemple Crawler Astuces Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 70.
    Le web Crawler Autres m´thodes e Exemple Crawler Astuces Utiliser les headers HTTP Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 71.
    Le web Crawler Autres m´thodes e Exemple Crawler Astuces Utiliser les headers HTTP User-agent Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 72.
    Le web Crawler Autres m´thodes e Exemple Crawler Astuces Utiliser les headers HTTP User-agent random et sleep Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 73.
    Le web Crawler Autres m´thodes e Exemple Crawler Astuces Utiliser les headers HTTP User-agent random et sleep Multi-agent plutˆt que multi-thread o Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 74.
    Le web Crawler Autres m´thodes e Exemple Crawler Astuces Utiliser les headers HTTP User-agent random et sleep Multi-agent plutˆt que multi-thread o Principes du Focused crawler Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 75.
    Le web Crawler Autres m´thodes e Exemple Crawler Astuces Utiliser les headers HTTP User-agent random et sleep Multi-agent plutˆt que multi-thread o Principes du Focused crawler Ne t´l´charger que les pages pertinentes ee Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 76.
    Le web Crawler Autres m´thodes e Exemple Crawler Astuces Utiliser les headers HTTP User-agent random et sleep Multi-agent plutˆt que multi-thread o Principes du Focused crawler Ne t´l´charger que les pages pertinentes ee Indicateurs topologiques Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 77.
    Le web Crawler Autres m´thodes e Exemple Crawler Astuces Utiliser les headers HTTP User-agent random et sleep Multi-agent plutˆt que multi-thread o Principes du Focused crawler Ne t´l´charger que les pages pertinentes ee Indicateurs topologiques Indicateurs s´mantiques e Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 78.
    Le web Crawler Autres m´thodes e Exemple Aggr´gation e Principe Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 79.
    Le web Crawler Autres m´thodes e Exemple Aggr´gation e Principe Syndication ou comment renverser l’acc`s aux donn´es e e Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 80.
    Le web Crawler Autres m´thodes e Exemple Aggr´gation e Principe Syndication ou comment renverser l’acc`s aux donn´es e e Probl`mes e Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 81.
    Le web Crawler Autres m´thodes e Exemple Aggr´gation e Principe Syndication ou comment renverser l’acc`s aux donn´es e e Probl`mes e Atom, RSS, encore mille versions Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 82.
    Le web Crawler Autres m´thodes e Exemple Aggr´gation e Principe Syndication ou comment renverser l’acc`s aux donn´es e e Probl`mes e Atom, RSS, encore mille versions Flux complet / partiel / vide ... Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 83.
    Le web Crawler Autres m´thodes e Exemple Aggr´gation e Principe Syndication ou comment renverser l’acc`s aux donn´es e e Probl`mes e Atom, RSS, encore mille versions Flux complet / partiel / vide ... ... avec ou sans date, permaliens, HTML Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 84.
    Le web Crawler Autres m´thodes e Exemple Scraping Principe Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 85.
    Le web Crawler Autres m´thodes e Exemple Scraping Principe Analyser une page web pour en extraire une information sp´cifique e Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 86.
    Le web Crawler Autres m´thodes e Exemple Scraping Principe Analyser une page web pour en extraire une information sp´cifique e Probl`mes e Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 87.
    Le web Crawler Autres m´thodes e Exemple Scraping Principe Analyser une page web pour en extraire une information sp´cifique e Probl`mes e DOM ou Regexp ou les deux Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 88.
    Le web Crawler Autres m´thodes e Exemple Scraping Principe Analyser une page web pour en extraire une information sp´cifique e Probl`mes e DOM ou Regexp ou les deux Template et dynamisme des pages scrap´es e Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 89.
    Le web Crawler Autres m´thodes e Exemple Scraping Principe Analyser une page web pour en extraire une information sp´cifique e Probl`mes e DOM ou Regexp ou les deux Template et dynamisme des pages scrap´es e Flash et Javascript Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 90.
    Le web Crawler Autres m´thodes e Exemple API Principe Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 91.
    Le web Crawler Autres m´thodes e Exemple API Principe Utiliser les API de certains sites pour collecter la donn´e e Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 92.
    Le web Crawler Autres m´thodes e Exemple API Principe Utiliser les API de certains sites pour collecter la donn´e e Probl`mes e Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 93.
    Le web Crawler Autres m´thodes e Exemple API Principe Utiliser les API de certains sites pour collecter la donn´e e Probl`mes e Limitations Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 94.
    Le web Crawler Autres m´thodes e Exemple API Principe Utiliser les API de certains sites pour collecter la donn´e e Probl`mes e Limitations API propri´taires e Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 95.
    Le web Crawler Autres m´thodes e Exemple Un exemple concret Cr´er un corpus de documents sur un th`me pr´cis avec Google e e e Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 96.
    Le web Crawler Autres m´thodes e Exemple Un exemple concret Cr´er un corpus de documents sur un th`me pr´cis avec Google e e e Cr´er un set de requˆtes e e Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 97.
    Le web Crawler Autres m´thodes e Exemple Un exemple concret Cr´er un corpus de documents sur un th`me pr´cis avec Google e e e Cr´er un set de requˆtes e e ´ Ecrire un robot de captation Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 98.
    Le web Crawler Autres m´thodes e Exemple Un exemple concret Cr´er un corpus de documents sur un th`me pr´cis avec Google e e e Cr´er un set de requˆtes e e ´ Ecrire un robot de captation Module de scraping des r´sultats de Google e (avec Web::Scraper par ex.) Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 99.
    Le web Crawler Autres m´thodes e Exemple Un exemple concret Cr´er un corpus de documents sur un th`me pr´cis avec Google e e e Cr´er un set de requˆtes e e ´ Ecrire un robot de captation Module de scraping des r´sultats de Google e (avec Web::Scraper par ex.) Module d’ordonnancement Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 100.
    Le web Crawler Autres m´thodes e Exemple Un exemple concret Cr´er un corpus de documents sur un th`me pr´cis avec Google e e e Cr´er un set de requˆtes e e ´ Ecrire un robot de captation Module de scraping des r´sultats de Google e (avec Web::Scraper par ex.) Module d’ordonnancement Module de « crawl » Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 101.
    Le web Crawler Autres m´thodes e Exemple Un exemple concret Cr´er un corpus de documents sur un th`me pr´cis avec Google e e e Cr´er un set de requˆtes e e ´ Ecrire un robot de captation Module de scraping des r´sultats de Google e (avec Web::Scraper par ex.) Module d’ordonnancement Module de « crawl » Capter les donn´es :) e Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 102.
    Le web Crawler Autres m´thodes e Exemple Wikip´dia est ton ami :) e http://en.wikipedia.org/wiki/HTML http://en.wikipedia.org/wiki/Web_crawler http://en.wikipedia.org/wiki/Focused_crawler http://en.wikipedia.org/wiki/Web_scraping http://en.wikipedia.org/wiki/URL_normalization http://en.wikipedia.org/wiki/Cloaking http://en.wikipedia.org/wiki/User_agent http://en.wikipedia.org/wiki/Spider_trap http://en.wikipedia.org/wiki/Denial-of-service_attack etc. Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 103.
    Le web Crawler Autres m´thodes e Exemple Merci ! http://labs.rtgi.eu/ http://github.com/cmaussan/Picrowler http://github.com/cmaussan/captation-ic05-a09-tex Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e
  • 104.
    Le web Crawler Autres m´thodes e Exemple Merci ! http://labs.rtgi.eu/ http://github.com/cmaussan/Picrowler http://github.com/cmaussan/captation-ic05-a09-tex Camille Maussang camille.maussang@rtgi.fr RTGI Captation de donn´es web e