10
1 Le b.a.-ba du web scraping Alexandre Gindre @alexgindre ou [email protected]

Le b.a.-ba du web scraping

Embed Size (px)

Citation preview

Page 1: Le b.a.-ba du web scraping

1

Le b.a.-ba du web scraping

Alexandre Gindre

@alexgindre ou [email protected]

Page 2: Le b.a.-ba du web scraping

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

Page 3: Le b.a.-ba du web scraping

3

Ma vision d’architecture

WWWSite cible

Proxy Scraper

StockageRetraitement des données

Page 4: Le b.a.-ba du web scraping

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 ?

Page 5: Le b.a.-ba du web scraping

5

De nombreux business sur le web scraping

Comparateur de prix

Informations sur des contacts

Analyse sociale Base de recherche

Page 7: Le b.a.-ba du web scraping

7

Exemple

WWW

Polipo

HTML

PDF

XLS

DOC

Page 8: Le b.a.-ba du web scraping

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)

Page 9: Le b.a.-ba du web scraping

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)

Page 10: Le b.a.-ba du web scraping

10

Questions ?

Conclusion