Upgrade to Pro — share decks privately, control downloads, hide ads and more …

*Just Data* : Crawling et extraction d'informat...

*Just Data* : Crawling et extraction d'information avec Python

BigData/Cloud/Machine Learning, c'est maintenant des mots passé dans le langage courant, mais souvent avant d'atteindre le niveau de la *Big*Data, il faut parfois se battre pour juste avoir la partie Data. Dans cette présentation, je vais vous apprendre à créer de la donnée !!

Ok, pas créer de la donnée... Disons plutôt sauvegarder le patrimoine mondial de l'humanité en utilisant une bonne dose de connaissance du web, un peu de NLP, de crawling et surtout un peu de Python. Si vous décidez de me suivre, vous allez pouvoir apprendre rapidement :

A organiser votre recherche d'information et la selection de vos cibles
Comment extraire l'information d'une page web
A construire et déployer un crawler pour le web
Comment bypasser, comme un vrai hacker, certaines techniques de protection des sites web
et quelques techniques pour arriver à extraire de l'information de textes bruts
A grands pouvoirs, correspond grandes responsabilités, ainsi le tout sera saupoudré d'une courte introduction au contexte légal pour que vous ne choisissiez d'utiliser vos nouvelles compétences en connaissance de cause et dans les limites de la loi.

Et puis comme j'aime bien les challenges, on fera une petite séance de LiveCoding, où je mettrais tout ça en pratique avec vous sur un sujet que vous allez choisir en live pendant la conférence.

Olivier Girardot

May 20, 2013
Tweet

More Decks by Olivier Girardot

Other Decks in Programming

Transcript

  1. Disclaimer • Tout ceci est à but pédagogique • Respectez

    le cadre légal • Apprenez à sécuriser vos données • En sommes :
  2. Me • Dev Java, Python • Finance, Santé • Fondateur

    • APPARTINFO • Lateral Thoughts (LT)
  3. LT Data «Big Data Forever» Functional Programming Data vs. Code

    NLP Python Machine Learning NLP Machine Learning NoSQL Mahoot Java
  4. Good Hunting I. Organiser sa recherche II.Extraire l’information III.Construire et

    déployer un crawler IV.Techniques de protection LIVE
  5. 1990 1992 1994 1996 1998 2000 2002 2004 2006 2008

    2010 0 PB 10 000 PB 20 000 PB 30 000 PB Evolution du trafic internet
  6. 1990 1992 1994 1996 1998 2000 2002 2004 2006 2008

    2010 0 PB 10 000 PB 20 000 PB 30 000 PB 0,001 0,002 0,004 0,01 0,02 0,17 1,8 5 11 26 75 175 356 681 1 267 2 055 3 339 5 219 7 639 10 676 14 929 20 634 Evolution du trafic internet
  7. FR • loi DADVSI (droit d’auteur et aux droits voisins

    dans la société de l’information) • Spécialement : Article L 342-1 du Code de propriété intellectuelle
  8. Mais... • Il faut justifier d’être «producteur de base de

    données» • Exemple : • SeLoger Vs Solus Immo, Yakaz, Gloobot
  9. L-341-1 du CPI *TRIBUNAL DE GRANDE INSTANCE DE PARIS –

    CHAMBRE SOCIALE, 3EME CHAMBRE, 4EME SECTION JUGEMENT DU 26 JANVIER 2012 PRESSIMMO ON LINE / SOLUS IMMO, YAKAS, GLOOBOT
  10. Donc • Si on n’est pas «producteur» => Aucune protection

    • Si on l’est, encore faut-il justifier : • d’une «extraction qualitativement ou quantitativement substantielle» ( L. 342-1) • Achèvement inférieur à 15 ans après le 1er janvier ( L. 342-5)
  11. Ce droit • Nommé «Droit Sui Generis» est issue d’une

    directive européenne de 1996 • Donc valable dans toute l’Europe (même si transcrit dans les lois locales)
  12. Trouver sa cible • 2 ratios à prendre en compte

    : • Qualité de la donnée • Difficulté d’extraction
  13. Une Cible est trouvée • Premiers reflexes ? • API

    • MetaData (RDFa, microformat) • (x)HTML(5) • Texte brut
  14. En somme Est-ce qu’il y a une API ? Est-ce

    qu’il y a des tags ? Est-ce que le HTML peut m’aider ? Le texte brut est-il utilisable ? Pour le site normal ? Pour le site mobile ? Pour l’App ?
  15. On tente ? • 2 objectifs : extraire titre et

    réalisateur • Les outils : • Chrome => (Console, Network) • Python => (Requests, BeautifulSoup) • Regexp DEMO
  16. Scrapy ? • Framework pour déployer un crawler • Concepts

    : • Items • Pipeline • Spiders • Rules
  17. Scrapy en SAAS • Scrappinghub • Déployer son crawler sur

    un cluster • Monitorer les items récupérés • Autoscrapping
  18. Dummies • Ne pas mettre tout dans le sitemap.xml •

    Sécuriser ses APIs • Fail2ban • Analyser les utilisations « inhabituelles » • Ne pas lier tout à tout/listing non ex-haustif