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