Download pdf - Captation Ic05 A09

Transcript
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