Upload
alexandre-gindre
View
135
Download
2
Embed Size (px)
Citation preview
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 crawlingWeb crawling : récupérer toutes les informations d’un site
Ex: Google
Web scraping : récupérer un sous-ensemble des informations d’un siteEx: 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
WWWSite cible
Proxy Scraper
StockageRetraitement 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 sujetEx: 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
XLS
DOC
8
Le navigateur masque la mauvaise structuration du HTMLProblè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 standardLes 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’IPUtilisation 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éesParamé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 cibleMise à 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 scraperGérer dans les outils comme Scrapy ou CasperJS
Sinon gestion à la main …
Problèmes rencontrés (2/2)
10
Questions ?
Conclusion