SlideShare une entreprise Scribd logo
1
Le b.a.-ba du web scraping
Alexandre Gindre
@alexgindre ou agi@octo.com
2
« Le web scraping est une technique d'extraction du contenu de sites
Web, via un script ou un programme, dans le but de le transformer pour
permettre son utilisation dans un autre contexte » (Wikipedia)
Une différenciation est faite entre le web scraping et le web crawling
Web crawling : récupérer toutes les informations d’un site
Ex: Google
Web scraping : récupérer un sous-ensemble des informations d’un site
Ex: comparateur de prix
Définition
http://stackoverflow.com/questions/4327392/what-is-the-difference-between-web-crawling-and-web-scraping
3
Ma vision d’architecture
WWW
Site cible
Proxy Scraper
Stockage
Retraitement
des données
4
On se réfère au droit d’auteur et au droit sur les bases de données
C’est encore assez flou !
Quelques jurisprudences sur le sujet
Ex: Ryanair contre OPODO
Il faut prendre en compte la charte d’utilisation/mentions légales du site
Ex: societe.com
Ne pas mettre en danger le bon fonctionnement du site visé
Faire attention à ne pas partir dans un DDOS !
Que dit la loi ?
5
De nombreux business sur le web scraping
Comparateur de
prix
Informations sur
des contacts
Analyse sociale Base de recherche
6
Des technologies variées
pjscrapeGrab
Selenium with Python
Beautiful Soup Wombat
7
Exemple
WWW
Polipo
HTML
PDF
XLS
DOC
8
Le navigateur masque la mauvaise structuration du HTML
Problème au niveau du parsing de la page
Les libs/outils peuvent automatiquement corriger le problème comme le browser
Le serveur du site bloque les user-agents non standard
Les outils comme Scrapy donne le user-agent Scrapy
Redéfinition du user-agent pour passer
Accepter les conséquences…
Le serveur du site bloque par l’IP
Utilisation d’un proxy pour changer l’IP de provenance des requêtes
Prévoir un pool d’IP
Service : hidemyass
A la main : TOR
Toutes les informations ne sont pas récupérées
Paramétrer au mieux le temps de passage du scraper
Mettre en place un système de watcher
Toutes les 5 mins ?
Eviter les doublons
Passer par des hash sur les données
Problèmes rencontrés (1/2)
9
Changement de la structure de la page cible
Mise à niveau à la main pour l’instant …
Les id et les class sont changeants
Xpath sur les tags html pour les changement d’id ou de class CSS
Reprise d’erreur sur le scraper
Gérer dans les outils comme Scrapy ou CasperJS
Sinon gestion à la main …
Problèmes rencontrés (2/2)
10
Questions ?
Conclusion

Contenu connexe

PDF
Développer pour tous les navigateurs
PDF
Un navigateur, comment ça marche
ODP
Ruby et MongoDB dans la pratique, MongoFR
PDF
[JDLL 2018] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir l...
ODP
Utilisation de node.js avec mongoDB
 
PDF
Zenika MongoDB Tour - REX Amadeus
PDF
Stratégie et veille : Extraire et trier des données en ligne
PDF
WEB SCRAPING.pdf
Développer pour tous les navigateurs
Un navigateur, comment ça marche
Ruby et MongoDB dans la pratique, MongoFR
[JDLL 2018] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir l...
Utilisation de node.js avec mongoDB
 
Zenika MongoDB Tour - REX Amadeus
Stratégie et veille : Extraire et trier des données en ligne
WEB SCRAPING.pdf

Similaire à Le b.a.-ba du web scraping (15)

PPTX
Web Scraping definition steps and goals
PDF
trucs_PFT_WEB_SCRAP_190411.pdf
PPTX
Web scraping avec r
PPTX
Web scraping avec r
ODP
Le scrap : accessible à tous #seocamp
PDF
La Claque #16 - Du scraping de données, du Python et paf ! Ça fait des chocapics
PDF
Scrapez facilement et gratuitement
KEY
La mobilité dans Drupal
PDF
Master IDEMM - Optimisation structurelle pour le référencement
PDF
Rapport de mon First Projet Web à l'Ecole Supérieure de Technologie de SAFI -...
PPTX
Initiation au Web scraping - AJPro
PPTX
Screaming frog - l'outil ne fait pas l'artisan
PPTX
Crawlers (par DE COURCHELLE Inès et JACOB Sophie)
PDF
Gestion_d_un_projet_Web_e_commerce_Piece (1).pdf
PDF
Gestion_d_un_projet_Web_e_commerce_Piece.pdf
Web Scraping definition steps and goals
trucs_PFT_WEB_SCRAP_190411.pdf
Web scraping avec r
Web scraping avec r
Le scrap : accessible à tous #seocamp
La Claque #16 - Du scraping de données, du Python et paf ! Ça fait des chocapics
Scrapez facilement et gratuitement
La mobilité dans Drupal
Master IDEMM - Optimisation structurelle pour le référencement
Rapport de mon First Projet Web à l'Ecole Supérieure de Technologie de SAFI -...
Initiation au Web scraping - AJPro
Screaming frog - l'outil ne fait pas l'artisan
Crawlers (par DE COURCHELLE Inès et JACOB Sophie)
Gestion_d_un_projet_Web_e_commerce_Piece (1).pdf
Gestion_d_un_projet_Web_e_commerce_Piece.pdf
Publicité

Le b.a.-ba du web scraping

  • 1. 1 Le b.a.-ba du web scraping Alexandre Gindre @alexgindre ou [email protected]
  • 2. 2 « Le web scraping est une technique d'extraction du contenu de sites Web, via un script ou un programme, dans le but de le transformer pour permettre son utilisation dans un autre contexte » (Wikipedia) Une différenciation est faite entre le web scraping et le web crawling Web crawling : récupérer toutes les informations d’un site Ex: Google Web scraping : récupérer un sous-ensemble des informations d’un site Ex: comparateur de prix Définition http://stackoverflow.com/questions/4327392/what-is-the-difference-between-web-crawling-and-web-scraping
  • 3. 3 Ma vision d’architecture WWW Site cible Proxy Scraper Stockage Retraitement des données
  • 4. 4 On se réfère au droit d’auteur et au droit sur les bases de données C’est encore assez flou ! Quelques jurisprudences sur le sujet Ex: Ryanair contre OPODO Il faut prendre en compte la charte d’utilisation/mentions légales du site Ex: societe.com Ne pas mettre en danger le bon fonctionnement du site visé Faire attention à ne pas partir dans un DDOS ! Que dit la loi ?
  • 5. 5 De nombreux business sur le web scraping Comparateur de prix Informations sur des contacts Analyse sociale Base de recherche
  • 6. 6 Des technologies variées pjscrapeGrab Selenium with Python Beautiful Soup Wombat
  • 8. 8 Le navigateur masque la mauvaise structuration du HTML Problème au niveau du parsing de la page Les libs/outils peuvent automatiquement corriger le problème comme le browser Le serveur du site bloque les user-agents non standard Les outils comme Scrapy donne le user-agent Scrapy Redéfinition du user-agent pour passer Accepter les conséquences… Le serveur du site bloque par l’IP Utilisation d’un proxy pour changer l’IP de provenance des requêtes Prévoir un pool d’IP Service : hidemyass A la main : TOR Toutes les informations ne sont pas récupérées Paramétrer au mieux le temps de passage du scraper Mettre en place un système de watcher Toutes les 5 mins ? Eviter les doublons Passer par des hash sur les données Problèmes rencontrés (1/2)
  • 9. 9 Changement de la structure de la page cible Mise à niveau à la main pour l’instant … Les id et les class sont changeants Xpath sur les tags html pour les changement d’id ou de class CSS Reprise d’erreur sur le scraper Gérer dans les outils comme Scrapy ou CasperJS Sinon gestion à la main … Problèmes rencontrés (2/2)