La casa de SEO : les questions à se poser pour le casse SEO parfait
Le b.a.-ba du web scraping
1. 1
Le b.a.-ba du web scraping
Alexandre Gindre
@alexgindre ou agi@octo.com
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
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
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)