Upload
fabien-pfaender
View
478
Download
4
Tags:
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
Le web Crawler Autres methodes Exemple
Captation de donnees web
Camille Maussang
IC05 - A09
Camille Maussang [email protected] RTGI
Captation de donnees web
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Le web Crawler Autres methodes Exemple
Crawler
Camille Maussang [email protected] RTGI
Captation de donnees web
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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