104
Le web Crawler Autres m´ ethodes Exemple Captation de donn´ ees web Camille Maussang [email protected] RTGI IC05 - A09 Camille Maussang [email protected] RTGI Captation de donn´ ees web

Captation Ic05 A09

Embed Size (px)

DESCRIPTION

Ce cours d'ic05 (UTC compiègne) par Camille Maussang (linkfluence) décrit les principes de la captation de données web et les problèmes qui y sont rencontrés.

Citation preview

Page 1: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Captation de donnees web

Camille Maussang

[email protected]

IC05 - A09

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 2: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Qui suis-je ?

I Camille Maussang (cmaussan)

I Chef du dev chez RTGI...

I ... qui fabrique des outils d’analyse du web social

I ... en captant des donnees sur le web ;)

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 3: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Qui suis-je ?

I Camille Maussang (cmaussan)

I Chef du dev chez RTGI...

I ... qui fabrique des outils d’analyse du web social

I ... en captant des donnees sur le web ;)

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 4: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Qui suis-je ?

I Camille Maussang (cmaussan)

I Chef du dev chez RTGI...

I ... qui fabrique des outils d’analyse du web social

I ... en captant des donnees sur le web ;)

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 5: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Qui suis-je ?

I Camille Maussang (cmaussan)

I Chef du dev chez RTGI...

I ... qui fabrique des outils d’analyse du web social

I ... en captant des donnees sur le web ;)

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 6: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Qui suis-je ?

I Camille Maussang (cmaussan)

I Chef du dev chez RTGI...

I ... qui fabrique des outils d’analyse du web social

I ... en captant des donnees sur le web ;)

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 7: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

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

Le web est un corpus de documents

I ouvert,

I heterogene,

I et dynamique.

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 8: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

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

Le web est un corpus de documents

I ouvert,

I heterogene,

I et dynamique.

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 9: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

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

Le web est un corpus de documents

I ouvert,

I heterogene,

I et dynamique.

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 10: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

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

Le web est un corpus de documents

I ouvert,

I heterogene,

I et dynamique.

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 11: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

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

Le web peut etre represente par des graphes

I ou les noeuds sont :

I des pages,I des sites,I des mots,I ou des gens,

I et les arcs des liens.

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 12: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

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

Le web peut etre represente par des graphes

I ou les noeuds sont :

I des pages,I des sites,I des mots,I ou des gens,

I et les arcs des liens.

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 13: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

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

Le web peut etre represente par des graphes

I ou les noeuds sont :I des pages,

I des sites,I des mots,I ou des gens,

I et les arcs des liens.

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 14: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

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

Le web peut etre represente par des graphes

I ou les noeuds sont :I des pages,I des sites,

I des mots,I ou des gens,

I et les arcs des liens.

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 15: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

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

Le web peut etre represente par des graphes

I ou les noeuds sont :I des pages,I des sites,I des mots,

I ou des gens,

I et les arcs des liens.

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 16: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

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

Le web peut etre represente par des graphes

I ou les noeuds sont :I des pages,I des sites,I des mots,I ou des gens,

I et les arcs des liens.

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 17: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

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

Le web peut etre represente par des graphes

I ou les noeuds sont :I des pages,I des sites,I des mots,I ou des gens,

I et les arcs des liens.

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 18: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

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

Capter des donnees sur le web requiert un certain nombre deressources

I Bande passante

I Stockage

I Temps machine

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 19: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

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

Capter des donnees sur le web requiert un certain nombre deressources

I Bande passante

I Stockage

I Temps machine

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 20: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

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

Capter des donnees sur le web requiert un certain nombre deressources

I Bande passante

I Stockage

I Temps machine

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 21: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

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

Capter des donnees sur le web requiert un certain nombre deressources

I Bande passante

I Stockage

I Temps machine

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 22: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

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

Donc :

I Que cherchons-nous ?

I Que faire pour recuperer ce qui nous est important ?

I Toujours penser « heuristiques »...

I ... et « effets de bord »!

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 23: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

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

Donc :

I Que cherchons-nous ?

I Que faire pour recuperer ce qui nous est important ?

I Toujours penser « heuristiques »...

I ... et « effets de bord »!

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 24: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

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

Donc :

I Que cherchons-nous ?

I Que faire pour recuperer ce qui nous est important ?

I Toujours penser « heuristiques »...

I ... et « effets de bord »!

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 25: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

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

Donc :

I Que cherchons-nous ?

I Que faire pour recuperer ce qui nous est important ?

I Toujours penser « heuristiques »...

I ... et « effets de bord »!

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 26: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

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

Donc :

I Que cherchons-nous ?

I Que faire pour recuperer ce qui nous est important ?

I Toujours penser « heuristiques »...

I ... et « effets de bord »!

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 27: Captation Ic05 A09

Le web Crawler Autres methodes 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(heterogene) n’importe quand (dynamique).

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 28: Captation Ic05 A09

Le web Crawler Autres methodes 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(heterogene) n’importe quand (dynamique).

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 29: Captation Ic05 A09

Le web Crawler Autres methodes 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(heterogene) n’importe quand (dynamique).

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 30: Captation Ic05 A09

Le web Crawler Autres methodes 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(heterogene)

n’importe quand (dynamique).

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 31: Captation Ic05 A09

Le web Crawler Autres methodes 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(heterogene) n’importe quand (dynamique).

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 32: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Definitions

Normes, recommandations et standards

I Norme (ISO/RFC) : HTTP, URL, SGML, HTML 1-2, MIME

I Recommandation W3C : HTML 3-4-5, XHTML 1, CSS, DOM

I Standards : PDF et Flash (Taux de penetration > 99%)

Web dynamique

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

I client-side : Javascript, Flash, ActiveX, Applet Java

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 33: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Definitions

Normes, recommandations et standards

I Norme (ISO/RFC) : HTTP, URL, SGML, HTML 1-2, MIME

I Recommandation W3C : HTML 3-4-5, XHTML 1, CSS, DOM

I Standards : PDF et Flash (Taux de penetration > 99%)

Web dynamique

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

I client-side : Javascript, Flash, ActiveX, Applet Java

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 34: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Definitions

Normes, recommandations et standards

I Norme (ISO/RFC) : HTTP, URL, SGML, HTML 1-2, MIME

I Recommandation W3C : HTML 3-4-5, XHTML 1, CSS, DOM

I Standards : PDF et Flash (Taux de penetration > 99%)

Web dynamique

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

I client-side : Javascript, Flash, ActiveX, Applet Java

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 35: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Definitions

Normes, recommandations et standards

I Norme (ISO/RFC) : HTTP, URL, SGML, HTML 1-2, MIME

I Recommandation W3C : HTML 3-4-5, XHTML 1, CSS, DOM

I Standards : PDF et Flash (Taux de penetration > 99%)

Web dynamique

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

I client-side : Javascript, Flash, ActiveX, Applet Java

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 36: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Definitions

Normes, recommandations et standards

I Norme (ISO/RFC) : HTTP, URL, SGML, HTML 1-2, MIME

I Recommandation W3C : HTML 3-4-5, XHTML 1, CSS, DOM

I Standards : PDF et Flash (Taux de penetration > 99%)

Web dynamique

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

I client-side : Javascript, Flash, ActiveX, Applet Java

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 37: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Definitions

Normes, recommandations et standards

I Norme (ISO/RFC) : HTTP, URL, SGML, HTML 1-2, MIME

I Recommandation W3C : HTML 3-4-5, XHTML 1, CSS, DOM

I Standards : PDF et Flash (Taux de penetration > 99%)

Web dynamique

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

I client-side : Javascript, Flash, ActiveX, Applet Java

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 38: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Definitions

Normes, recommandations et standards

I Norme (ISO/RFC) : HTTP, URL, SGML, HTML 1-2, MIME

I Recommandation W3C : HTML 3-4-5, XHTML 1, CSS, DOM

I Standards : PDF et Flash (Taux de penetration > 99%)

Web dynamique

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

I client-side : Javascript, Flash, ActiveX, Applet Java

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 39: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Prologue

Principe

I Telecharger une page

$ 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

Deja des problemes

I Type de fichier

I Encodage

I Contenu (HTML)

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 40: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Prologue

Principe

I Telecharger une page

$ 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

Deja des problemes

I Type de fichier

I Encodage

I Contenu (HTML)

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 41: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Prologue

Principe

I Telecharger une page

$ 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

Deja des problemes

I Type de fichier

I Encodage

I Contenu (HTML)

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 42: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Prologue

Principe

I Telecharger une page

$ 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

Deja des problemes

I Type de fichier

I Encodage

I Contenu (HTML)

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 43: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Prologue

Principe

I Telecharger une page

$ 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

Deja des problemes

I Type de fichier

I Encodage

I Contenu (HTML)

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 44: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Prologue

Principe

I Telecharger une page

$ 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

Deja des problemes

I Type de fichier

I Encodage

I Contenu (HTML)

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 45: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Prologue

Principe

I Telecharger une page

$ 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

Deja des problemes

I Type de fichier

I Encodage

I Contenu (HTML)

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 46: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Crawler

Principe

I Telecharger 1 page

I Extraire les liens

I Telecharger les pages pointees par les liens

I etc. etc.

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 47: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Crawler

Principe

I Telecharger 1 page

I Extraire les liens

I Telecharger les pages pointees par les liens

I etc. etc.

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 48: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Crawler

Principe

I Telecharger 1 page

I Extraire les liens

I Telecharger les pages pointees par les liens

I etc. etc.

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 49: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Crawler

Principe

I Telecharger 1 page

I Extraire les liens

I Telecharger les pages pointees par les liens

I etc. etc.

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 50: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Crawler

Principe

I Telecharger 1 page

I Extraire les liens

I Telecharger les pages pointees par les liens

I etc. etc.

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 51: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Crawler

1 use strict; use warnings;

2 use LWP:: Simple;

34 my ( $max_depth , @seed ) = @ARGV or die( ’need depth and url(s)’ );

5 my @already_visited = ();

6 my $depth = 0;

7 my @to_visit = @seed;

89 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 ( @already_visited ) {

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 [email protected] RTGI

Captation de donnees web

Page 52: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Crawler

I Metriques (distance, profondeur, etc.)

I Performance (goulots d’etranglement)

I Scalabilite (de 1 page a 1G pages)

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 53: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Crawler

I Metriques (distance, profondeur, etc.)

I Performance (goulots d’etranglement)

I Scalabilite (de 1 page a 1G pages)

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 54: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Crawler

I Metriques (distance, profondeur, etc.)

I Performance (goulots d’etranglement)

I Scalabilite (de 1 page a 1G pages)

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 55: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Crawler

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 56: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Crawler

De nouveaux problemes

I Politesse

I DoS (Denial of Service) : DNS, Serveurs HTTPI Blacklistage officiel (robots.txt, sitemap.xml, etc.)I Blacklistage officieux (cloaking, pieges a robot)

I Addressage

I Normalisation d’URL (doublons)I Site ou page ?I Plusieurs permaliens pour un seul contenu (GYM aide un peu)

I Autres...

I JavascriptI Deep webI Web prive

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 57: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Crawler

De nouveaux problemes

I Politesse

I DoS (Denial of Service) : DNS, Serveurs HTTPI Blacklistage officiel (robots.txt, sitemap.xml, etc.)I Blacklistage officieux (cloaking, pieges a robot)

I Addressage

I Normalisation d’URL (doublons)I Site ou page ?I Plusieurs permaliens pour un seul contenu (GYM aide un peu)

I Autres...

I JavascriptI Deep webI Web prive

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 58: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Crawler

De nouveaux problemes

I PolitesseI DoS (Denial of Service) : DNS, Serveurs HTTP

I Blacklistage officiel (robots.txt, sitemap.xml, etc.)I Blacklistage officieux (cloaking, pieges a robot)

I Addressage

I Normalisation d’URL (doublons)I Site ou page ?I Plusieurs permaliens pour un seul contenu (GYM aide un peu)

I Autres...

I JavascriptI Deep webI Web prive

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 59: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Crawler

De nouveaux problemes

I PolitesseI DoS (Denial of Service) : DNS, Serveurs HTTPI Blacklistage officiel (robots.txt, sitemap.xml, etc.)

I Blacklistage officieux (cloaking, pieges a robot)

I Addressage

I Normalisation d’URL (doublons)I Site ou page ?I Plusieurs permaliens pour un seul contenu (GYM aide un peu)

I Autres...

I JavascriptI Deep webI Web prive

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 60: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Crawler

De nouveaux problemes

I PolitesseI DoS (Denial of Service) : DNS, Serveurs HTTPI Blacklistage officiel (robots.txt, sitemap.xml, etc.)I Blacklistage officieux (cloaking, pieges a robot)

I Addressage

I Normalisation d’URL (doublons)I Site ou page ?I Plusieurs permaliens pour un seul contenu (GYM aide un peu)

I Autres...

I JavascriptI Deep webI Web prive

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 61: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Crawler

De nouveaux problemes

I PolitesseI DoS (Denial of Service) : DNS, Serveurs HTTPI Blacklistage officiel (robots.txt, sitemap.xml, etc.)I Blacklistage officieux (cloaking, pieges a robot)

I Addressage

I Normalisation d’URL (doublons)I Site ou page ?I Plusieurs permaliens pour un seul contenu (GYM aide un peu)

I Autres...

I JavascriptI Deep webI Web prive

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 62: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Crawler

De nouveaux problemes

I PolitesseI DoS (Denial of Service) : DNS, Serveurs HTTPI Blacklistage officiel (robots.txt, sitemap.xml, etc.)I Blacklistage officieux (cloaking, pieges a robot)

I AddressageI Normalisation d’URL (doublons)

I Site ou page ?I Plusieurs permaliens pour un seul contenu (GYM aide un peu)

I Autres...

I JavascriptI Deep webI Web prive

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 63: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Crawler

De nouveaux problemes

I PolitesseI DoS (Denial of Service) : DNS, Serveurs HTTPI Blacklistage officiel (robots.txt, sitemap.xml, etc.)I Blacklistage officieux (cloaking, pieges a robot)

I AddressageI Normalisation d’URL (doublons)I Site ou page ?

I Plusieurs permaliens pour un seul contenu (GYM aide un peu)

I Autres...

I JavascriptI Deep webI Web prive

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 64: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Crawler

De nouveaux problemes

I PolitesseI DoS (Denial of Service) : DNS, Serveurs HTTPI Blacklistage officiel (robots.txt, sitemap.xml, etc.)I Blacklistage officieux (cloaking, pieges a robot)

I AddressageI Normalisation d’URL (doublons)I Site ou page ?I Plusieurs permaliens pour un seul contenu (GYM aide un peu)

I Autres...

I JavascriptI Deep webI Web prive

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 65: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Crawler

De nouveaux problemes

I PolitesseI DoS (Denial of Service) : DNS, Serveurs HTTPI Blacklistage officiel (robots.txt, sitemap.xml, etc.)I Blacklistage officieux (cloaking, pieges a robot)

I AddressageI Normalisation d’URL (doublons)I Site ou page ?I Plusieurs permaliens pour un seul contenu (GYM aide un peu)

I Autres...

I JavascriptI Deep webI Web prive

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 66: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Crawler

De nouveaux problemes

I PolitesseI DoS (Denial of Service) : DNS, Serveurs HTTPI Blacklistage officiel (robots.txt, sitemap.xml, etc.)I Blacklistage officieux (cloaking, pieges a robot)

I AddressageI Normalisation d’URL (doublons)I Site ou page ?I Plusieurs permaliens pour un seul contenu (GYM aide un peu)

I Autres...I Javascript

I Deep webI Web prive

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 67: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Crawler

De nouveaux problemes

I PolitesseI DoS (Denial of Service) : DNS, Serveurs HTTPI Blacklistage officiel (robots.txt, sitemap.xml, etc.)I Blacklistage officieux (cloaking, pieges a robot)

I AddressageI Normalisation d’URL (doublons)I Site ou page ?I Plusieurs permaliens pour un seul contenu (GYM aide un peu)

I Autres...I JavascriptI Deep web

I Web prive

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 68: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Crawler

De nouveaux problemes

I PolitesseI DoS (Denial of Service) : DNS, Serveurs HTTPI Blacklistage officiel (robots.txt, sitemap.xml, etc.)I Blacklistage officieux (cloaking, pieges a robot)

I AddressageI Normalisation d’URL (doublons)I Site ou page ?I Plusieurs permaliens pour un seul contenu (GYM aide un peu)

I Autres...I JavascriptI Deep webI Web prive

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 69: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Crawler

Astuces

I Utiliser les headers HTTP

I User-agent

I random et sleep

I Multi-agent plutot que multi-thread

Principes du Focused crawler

I Ne telecharger que les pages pertinentes

I Indicateurs topologiques

I Indicateurs semantiques

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 70: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Crawler

Astuces

I Utiliser les headers HTTP

I User-agent

I random et sleep

I Multi-agent plutot que multi-thread

Principes du Focused crawler

I Ne telecharger que les pages pertinentes

I Indicateurs topologiques

I Indicateurs semantiques

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 71: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Crawler

Astuces

I Utiliser les headers HTTP

I User-agent

I random et sleep

I Multi-agent plutot que multi-thread

Principes du Focused crawler

I Ne telecharger que les pages pertinentes

I Indicateurs topologiques

I Indicateurs semantiques

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 72: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Crawler

Astuces

I Utiliser les headers HTTP

I User-agent

I random et sleep

I Multi-agent plutot que multi-thread

Principes du Focused crawler

I Ne telecharger que les pages pertinentes

I Indicateurs topologiques

I Indicateurs semantiques

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 73: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Crawler

Astuces

I Utiliser les headers HTTP

I User-agent

I random et sleep

I Multi-agent plutot que multi-thread

Principes du Focused crawler

I Ne telecharger que les pages pertinentes

I Indicateurs topologiques

I Indicateurs semantiques

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 74: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Crawler

Astuces

I Utiliser les headers HTTP

I User-agent

I random et sleep

I Multi-agent plutot que multi-thread

Principes du Focused crawler

I Ne telecharger que les pages pertinentes

I Indicateurs topologiques

I Indicateurs semantiques

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 75: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Crawler

Astuces

I Utiliser les headers HTTP

I User-agent

I random et sleep

I Multi-agent plutot que multi-thread

Principes du Focused crawler

I Ne telecharger que les pages pertinentes

I Indicateurs topologiques

I Indicateurs semantiques

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 76: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Crawler

Astuces

I Utiliser les headers HTTP

I User-agent

I random et sleep

I Multi-agent plutot que multi-thread

Principes du Focused crawler

I Ne telecharger que les pages pertinentes

I Indicateurs topologiques

I Indicateurs semantiques

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 77: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Crawler

Astuces

I Utiliser les headers HTTP

I User-agent

I random et sleep

I Multi-agent plutot que multi-thread

Principes du Focused crawler

I Ne telecharger que les pages pertinentes

I Indicateurs topologiques

I Indicateurs semantiques

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 78: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Aggregation

Principe

Syndication ou comment renverser l’acces aux donnees

Problemes

I Atom, RSS, encore mille versions

I Flux complet / partiel / vide ...

I ... avec ou sans date, permaliens, HTML

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 79: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Aggregation

PrincipeSyndication ou comment renverser l’acces aux donnees

Problemes

I Atom, RSS, encore mille versions

I Flux complet / partiel / vide ...

I ... avec ou sans date, permaliens, HTML

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 80: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Aggregation

PrincipeSyndication ou comment renverser l’acces aux donnees

Problemes

I Atom, RSS, encore mille versions

I Flux complet / partiel / vide ...

I ... avec ou sans date, permaliens, HTML

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 81: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Aggregation

PrincipeSyndication ou comment renverser l’acces aux donnees

Problemes

I Atom, RSS, encore mille versions

I Flux complet / partiel / vide ...

I ... avec ou sans date, permaliens, HTML

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 82: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Aggregation

PrincipeSyndication ou comment renverser l’acces aux donnees

Problemes

I Atom, RSS, encore mille versions

I Flux complet / partiel / vide ...

I ... avec ou sans date, permaliens, HTML

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 83: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Aggregation

PrincipeSyndication ou comment renverser l’acces aux donnees

Problemes

I Atom, RSS, encore mille versions

I Flux complet / partiel / vide ...

I ... avec ou sans date, permaliens, HTML

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 84: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Scraping

Principe

Analyser une page web pour en extraire une information specifique

Problemes

I DOM ou Regexp ou les deux

I Template et dynamisme des pages scrapees

I Flash et Javascript

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 85: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Scraping

PrincipeAnalyser une page web pour en extraire une information specifique

Problemes

I DOM ou Regexp ou les deux

I Template et dynamisme des pages scrapees

I Flash et Javascript

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 86: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Scraping

PrincipeAnalyser une page web pour en extraire une information specifique

Problemes

I DOM ou Regexp ou les deux

I Template et dynamisme des pages scrapees

I Flash et Javascript

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 87: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Scraping

PrincipeAnalyser une page web pour en extraire une information specifique

Problemes

I DOM ou Regexp ou les deux

I Template et dynamisme des pages scrapees

I Flash et Javascript

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 88: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Scraping

PrincipeAnalyser une page web pour en extraire une information specifique

Problemes

I DOM ou Regexp ou les deux

I Template et dynamisme des pages scrapees

I Flash et Javascript

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 89: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Scraping

PrincipeAnalyser une page web pour en extraire une information specifique

Problemes

I DOM ou Regexp ou les deux

I Template et dynamisme des pages scrapees

I Flash et Javascript

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 90: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

API

Principe

Utiliser les API de certains sites pour collecter la donnee

Problemes

I Limitations

I API proprietaires

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 91: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

API

PrincipeUtiliser les API de certains sites pour collecter la donnee

Problemes

I Limitations

I API proprietaires

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 92: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

API

PrincipeUtiliser les API de certains sites pour collecter la donnee

Problemes

I Limitations

I API proprietaires

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 93: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

API

PrincipeUtiliser les API de certains sites pour collecter la donnee

Problemes

I Limitations

I API proprietaires

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 94: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

API

PrincipeUtiliser les API de certains sites pour collecter la donnee

Problemes

I Limitations

I API proprietaires

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 95: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Un exemple concret

Creer un corpus de documents sur un theme precis avec Google

I Creer un set de requetes

I Ecrire un robot de captation

I Module de scraping des resultats de Google(avec Web::Scraper par ex.)

I Module d’ordonnancementI Module de « crawl »

I Capter les donnees :)

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 96: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Un exemple concret

Creer un corpus de documents sur un theme precis avec Google

I Creer un set de requetes

I Ecrire un robot de captation

I Module de scraping des resultats de Google(avec Web::Scraper par ex.)

I Module d’ordonnancementI Module de « crawl »

I Capter les donnees :)

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 97: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Un exemple concret

Creer un corpus de documents sur un theme precis avec Google

I Creer un set de requetes

I Ecrire un robot de captation

I Module de scraping des resultats de Google(avec Web::Scraper par ex.)

I Module d’ordonnancementI Module de « crawl »

I Capter les donnees :)

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 98: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Un exemple concret

Creer un corpus de documents sur un theme precis avec Google

I Creer un set de requetes

I Ecrire un robot de captationI Module de scraping des resultats de Google

(avec Web::Scraper par ex.)

I Module d’ordonnancementI Module de « crawl »

I Capter les donnees :)

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 99: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Un exemple concret

Creer un corpus de documents sur un theme precis avec Google

I Creer un set de requetes

I Ecrire un robot de captationI Module de scraping des resultats de Google

(avec Web::Scraper par ex.)I Module d’ordonnancement

I Module de « crawl »I Capter les donnees :)

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 100: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Un exemple concret

Creer un corpus de documents sur un theme precis avec Google

I Creer un set de requetes

I Ecrire un robot de captationI Module de scraping des resultats de Google

(avec Web::Scraper par ex.)I Module d’ordonnancementI Module de « crawl »

I Capter les donnees :)

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 101: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Un exemple concret

Creer un corpus de documents sur un theme precis avec Google

I Creer un set de requetes

I Ecrire un robot de captationI Module de scraping des resultats de Google

(avec Web::Scraper par ex.)I Module d’ordonnancementI Module de « crawl »

I Capter les donnees :)

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 102: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Wikipedia est ton ami :)

I http://en.wikipedia.org/wiki/HTML

I http://en.wikipedia.org/wiki/Web_crawler

I http://en.wikipedia.org/wiki/Focused_crawler

I http://en.wikipedia.org/wiki/Web_scraping

I http://en.wikipedia.org/wiki/URL_normalization

I http://en.wikipedia.org/wiki/Cloaking

I http://en.wikipedia.org/wiki/User_agent

I http://en.wikipedia.org/wiki/Spider_trap

I http://en.wikipedia.org/wiki/Denial-of-service_attack

I etc.

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 103: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Merci !

I http://labs.rtgi.eu/

I http://github.com/cmaussan/Picrowler

I http://github.com/cmaussan/captation-ic05-a09-tex

Camille Maussang [email protected] RTGI

Captation de donnees web

Page 104: Captation Ic05 A09

Le web Crawler Autres methodes Exemple

Merci !

I http://labs.rtgi.eu/

I http://github.com/cmaussan/Picrowler

I http://github.com/cmaussan/captation-ic05-a09-tex

Camille Maussang [email protected] RTGI

Captation de donnees web