SlideShare une entreprise Scribd logo
1  sur  20
Télécharger pour lire hors ligne
Extraire et trier des données en ligne
Erwan Tanguy
Stratégie et veille
Web scraping ?
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.
Attention, il peut y avoir une
utilisation légale ou illégale du
web scraping. Nous nous
intéresserons qu’à la première.
Pour quoi faire ?
 Transférer des données d’un
site vers un autre site ou vers
un document (type tableau
Excel) ;
 Transformer des données pour
y ajouter une valeur avant de
la partager sur des réseaux
sociaux ;
 Récupérer des informations
provenant de la concurrence
pour pouvoir les analyser ;
 Illégal : récupérer des données
et les publier à son compte ;
 …
Pour faire de la veille ?
La veille est un élément
stratégique important et souvent
négligé. Elle aide à prendre des
décisions, permet d’évoluer et de
rester à l’écoute.
Ce n’est en aucun cas de
l’espionnage !
La veille numérique travaille à
partir des données disponible
légalement sur internet :
 Sur des sites publics ;
 Via des requêtes sur les
moteurs de recherche ;
 …
La veille, associée à des
techniques de web scraping, va
pouvoir récupérer des données et
les rendre lisibles, accessibles,
pour un public large ou pour des
personnes précises.
Ces données, provenant
généralement de sites web,
pourront être récupérées au sein
d’un document dynamique (un
spreadsheet sur Google Drive par
exemple) ou compilées sur un
flux RSS dans le but d’alimenter
une newsletter…
Des outils de web scraping
Pour récupérer des
données :
 Google spreadsheet ;
 Import.io ;
 Kimono ;
 Feed43 ;
 Yahoo! Pipes…
Pour trier et transformer les
données :
 Yahoo! Pipes
 Dlvr.it…
Pour pousser les données :
 IFTTT ;
 Dlvr.it ;
 Zapier…
Pour partager les données :
 Les suites d’outils Google
(Drive, Group…) ;
 Excel ;
 Des intranets ou des sites
privés…
 Des sites ou des réseaux
sociaux ouverts…
Partons d’un exemple
Sur une page de vente
immobilière du site pap.fr, je
voudrais suivre les nouvelles
vente de maisons,
d’appartements ou autres au
fur et à mesure.
URL :
http://www.pap.fr/annonce/
vente-immobiliere-rennes-
35-g43618
Sur cette page, je ne
souhaite récupérer que
les informations de
zones précises liées à
ma recherche :
Import.io
Dans la liste des outils gratuits
permettant de réaliser une récupération
de données, vous pouvez utiliser
Import.io qui propose un espace en ligne
et une application.
Cet outil est relativement simple à
utiliser puisqu’il nécessite juste de zoner
les parties de la page avec laquelle nous
souhaitons réaliser un flux.
Le flux obtenu pourra être récupérer en
tableau soit dans Excel soit dans un
spreadsheet sur Drive (avec la possibilité
de le rendre dynamique).
Pour des approches simples, Import.io
peut être redoutable mais dès que le flux
souhaité nécessite des précisions, des
filtres, il faudra passer sur un outil plus
performant et plus complexe.
Import.io
Plusieurs méthodes d’extraction des
données sont possibles via
l’application gratuite :
 Magic
propose automatiquement de
récupérer les données qui
semblent être les plus évidentes
 Extractor & Classic Extractor
vous permet de cibler les
éléments de la page et de les
organiser dans un tableau
 Authenticated Extrator
vous permet d’extraire des
données sur un site qui nécessite
une authentification (attention,
cela peut être illégale si vous
transmettez ces données)
Import.io
Une fois votre page mise en place, vous
allez pouvoir ouvrir le Data set.
Dans cette partie de l’application, vous
allez pouvoir ajouter les liens des
paginations suivantes pour récupérer la
suite des données.
Vous trouverez aussi des outils pour
intégrer les résultats dans un tableur
(Excel ou spreadsheet) ou directement
les télécharger en csv, html ou excel…
Exemple pour insérer le résultat d’une page
dans un spreadsheet de Google :
=ImportHtml("https://query.import.io/store/connect
or/97a340a3-5ae0-4c2b-9f06-
8931d7f8ebe6/_query?_user=a4b8bb0e-5f58-4315-
805c-
ae9f5c0d0d42&_apikey=YOUR_API_KEY&format=HT
ML&input/webpage/url=http%3A%2F%2Fwww.pap.f
r%2Fannonce%2Fvente-immobiliere-rennes-35-
g43618"; "table"; 1)
kimonolabs
Kimonomabs propose une
plateforme en ligne et un
bookmarklet pour déclencher la
récupération des données sur une
page.
Les formats de sorties sont en json,
csv ou rss. Assez simple donc
ensuite de les importer en
dynamique sur un spreadsheet par
exemple.
Comme pour import.io, l’outil étant
simple, il reste limité. Pour notre
exemple, il est impossible de
récupérer les images des annonces.
kimonolabs
À partir du bookmarklet, vous
allez pouvoir définir, propriété par
propriété, les différents éléments
de votre tableaux.
Si vous souhaitez récupérer un
flux RSS par la suite, je vous
conseille de suivre les noms
« title » et « description » pour
définir les données principales,
cela simplifiera sa création.
Une fois terminé, il ne vous reste
plus qu’à enregistrer votre API et
la consulter ou l’intégrer à une
plateforme ou un logiciel.
Yahoo! Pipes
Yahoo! a mis en place un outil
assez puissant qui permet de
mettre en place des tuyaux
(‘pipes’) qui vont pouvoir
regrouper des informations
provenant de flux RSS, de
pages web, de CSV ou de
json. Ces informations
pourront ensuite être traitées
pour filtrer ou modifier les
données dans le but de les
valoriser.
Plus technique que les deux
précédents outils, il est aussi
plus redoutable d’efficacité.
Yahoo! Pipes
Comme le permet aussi dans une
certaine mesure import.io, le
langage XPath nous donne la
possibilité de cibler précisément
des zones.
Dans notre exemple, toutes les
annonces sont dans des éléments
html « li » avec une classe
« annonce », ce qui donne en
XPath :
//li[@class="annonce"]
//li indique que nous cherchons le
ou les nœuds « li » dans la page
[@class="annonce"] pour ne
prendre que ceux qui ont la classe
« annonce ».
Yahoo! Pipes
Avant de définir les éléments du flux RSS
final, nous allons correctement
paramétrer la date de publication.
Dans les résultats obtenus avec le Xpath,
nous pouvons dérouler un élément et y
trouver la date en français :
div.0.span.content
Avec le module Regex, nous allons
reformuler la date pour quelle se
présente sous la forme
2015-02-23T07:00:00.00
Nous remplaçons donc la valeur intitial
(ici 23 février 2015) appelé ainsi « (.*)
(.*) (.*) » par « $3-$2-
$1T07:00:00.00 ».
$1, $2 et $3 représentent les valeurs
mémorisées par les 3 (.*) !
Yahoo! Pipes
Il faut ensuite remplacer le
nom du mois par son
chiffre :
 janvier > 01
 février > 02
 …
Une fois les dates formatées,
nous allons pouvoir mettre
en place correctement notre
flux.
Yahoo! Pipes
Avec le module « Create RSS », nous allons indiquer
pour chaque élément la valeur correspondante.
 Titre : div.0.a.span.0.content
 Lien : div.0.a.href
 Date : div.0.span.content
 URL de l’image : div.2.div.0.a.0.img.src
Enfin, nous allons mettre une première valeur dans
la description, le prix du bien immobilier :
div.0.a.span.1.content
En effet, nous avons plusieurs valeurs à saisir mais
peu d’élément pour les contenir. Nous allons donc
travailler la description pour qu’elle puisse contenir
un maximum d’informations.
Enfin, pour finir avec ce module, nous allons ajouter
l’URL de l’image dans l’espace « Author » qui n’est
pas utilisé. Cela nous permettra, dans un
spreadsheet, d’afficher l’image correctement (Google
spreadsheet ne reconnait pas les medias associés).
Yahoo! Pipes
Pour finaliser notre flux, il nous reste à
intégrer 4 valeurs dans la description :
1. Le bloc textuel ;
2. Le nombre de pièces ;
3. Le nombre de chambres ;
4. La surface.
Nous allons pour cela utiliser un module
Regex pour ajouter du contenu avant
(« ^ ») ou après (« $ ») le contenu déjà
en place dans description.
Pour commencer nous allons ajouter le
terme prix devant la valeur en place.
Nous plaçons donc devant (replace : ^)
les éléments « Prix : ». Pour que le : ne
soit pas collé à la valeur existante, il est
utile de rajouter un espace.
Yahoo! Pipes
Pour le reste, ligne par ligne, nous allons
soit placer des sauts de ligne, soit du
contenu, à la suite des données déjà
présentes avec le symbole $.
Le contenu se trouve là :
${div.2.div.1.p}.
Et les 3 autres valeurs respectivement là
${div.2.div.1.ul.li.0.p}, là
${div.2.div.1.ul.li.1.p} et là
${div.2.div.1.ul.li.2.p}.
Vous nommez et enregistrez votre flux et
c’est prêt.
Vous pouvez ensuite l’intégrer à un
spreadsheet comme pour les précédents,
le connecter à votre boite mail ou à
d’autres services via des applications
comme IFTTT.
Yahoo! Pipes
Pour améliorer votre flux, vous pouvez
ajouter les URL des paginations dans
d’autres modules XPath puis les unir
avant d’opérer les modifications.
Avec le module « Filtre », vous pouvez
définir des termes qui doivent ou ne
doivent pas apparaître. Ici, par exemple,
il faut qu’il y ait le terme appartement
dans le titre.
Pour aller plus loin, il est possible de
mettre en place un formulaire qui vous
permettre de choisir le terme présent
dans le titre et de générer un flux propre
à chaque terme.
Voir en ligne
 La page sur pap.fr : http://goo.gl/62sOtz
 La présentation sur slideshare (téléchargeable en PDF) :
http://goo.gl/HxmWim
 Le pipe sur Yahoo! Pipes : http://goo.gl/1EZ7TC
 Tableau des données sur import.io : http://goo.gl/WsRo7u
 Flux RSS du kimonolabs : http://goo.gl/hRdqcX
ErwanTanguy
www.erwantanguy.fr
www.digital-strategy.fr
www.ouestlab.fr
Consultant et formateur
Web, veille numérique, réseaux
sociaux, référencement
Spécialiste CMS Wordpress, SPIP
HTML, CSS3, jQuery, PHP
contact@erwantanguy.fr
06 62 15 11 02

Contenu connexe

Similaire à Stratégie et veille : Extraire et trier des données en ligne

Créer des flux RSS avec Yahoo! Pipes et son module xPath
Créer des flux RSS avec Yahoo! Pipes et son module xPathCréer des flux RSS avec Yahoo! Pipes et son module xPath
Créer des flux RSS avec Yahoo! Pipes et son module xPathErwan Tanguy
 
Looker Studio - trucs et astuces pour améliorer ses dashboards
Looker Studio - trucs et astuces pour améliorer ses dashboardsLooker Studio - trucs et astuces pour améliorer ses dashboards
Looker Studio - trucs et astuces pour améliorer ses dashboardsMadeline Pinthon
 
Hr analytics & big data : Spark en action dans un contexte RH
Hr analytics & big data : Spark en action dans un contexte RHHr analytics & big data : Spark en action dans un contexte RH
Hr analytics & big data : Spark en action dans un contexte RHWassim TRIFI
 
Stream processing et SQL
Stream processing et SQLStream processing et SQL
Stream processing et SQLBruno Bonnin
 
Chirurgie SEO / Solution répulsive contre les pandas #SEOCamp
Chirurgie SEO / Solution répulsive contre les pandas #SEOCampChirurgie SEO / Solution répulsive contre les pandas #SEOCamp
Chirurgie SEO / Solution répulsive contre les pandas #SEOCampHtitipi
 
Synchroniser ses applications (plus) simplement
Synchroniser ses applications (plus) simplementSynchroniser ses applications (plus) simplement
Synchroniser ses applications (plus) simplementgplanchat
 
Comment passer de SEO à SEO + data
Comment passer de SEO à SEO + dataComment passer de SEO à SEO + data
Comment passer de SEO à SEO + dataSEO CAMP
 
Stream processing et SQL
Stream processing et SQLStream processing et SQL
Stream processing et SQLBruno Bonnin
 
Intégration des données avec Talend ETL
Intégration des données avec Talend ETLIntégration des données avec Talend ETL
Intégration des données avec Talend ETLLilia Sfaxi
 
Core Web Vitals : Comprendre, Mesurer, Optimiser
Core Web Vitals : Comprendre, Mesurer, OptimiserCore Web Vitals : Comprendre, Mesurer, Optimiser
Core Web Vitals : Comprendre, Mesurer, OptimiseriProspect France
 
La puissance des pseudo-éléments
La puissance des pseudo-élémentsLa puissance des pseudo-éléments
La puissance des pseudo-élémentsGeoffrey Croftє
 
Matinale "Data Science et Machine Learning"
Matinale "Data Science et Machine Learning"Matinale "Data Science et Machine Learning"
Matinale "Data Science et Machine Learning"Aline Deschamps
 
Salesforce Einstein analytics - Formation sur les-bases - By iMalka
Salesforce Einstein analytics - Formation sur les-bases - By iMalkaSalesforce Einstein analytics - Formation sur les-bases - By iMalka
Salesforce Einstein analytics - Formation sur les-bases - By iMalkaIlan Malka
 
ASP.NET from Zero to Hero
ASP.NET from Zero to HeroASP.NET from Zero to Hero
ASP.NET from Zero to HeroCellenza
 
présentation-stage2
présentation-stage2présentation-stage2
présentation-stage2Anita Boom
 
SplunkLive! Paris 2018: Getting Data In
SplunkLive! Paris 2018: Getting Data InSplunkLive! Paris 2018: Getting Data In
SplunkLive! Paris 2018: Getting Data InSplunk
 

Similaire à Stratégie et veille : Extraire et trier des données en ligne (20)

Cours 01.pptx
Cours 01.pptxCours 01.pptx
Cours 01.pptx
 
Créer des flux RSS avec Yahoo! Pipes et son module xPath
Créer des flux RSS avec Yahoo! Pipes et son module xPathCréer des flux RSS avec Yahoo! Pipes et son module xPath
Créer des flux RSS avec Yahoo! Pipes et son module xPath
 
Looker Studio - trucs et astuces pour améliorer ses dashboards
Looker Studio - trucs et astuces pour améliorer ses dashboardsLooker Studio - trucs et astuces pour améliorer ses dashboards
Looker Studio - trucs et astuces pour améliorer ses dashboards
 
Hr analytics & big data : Spark en action dans un contexte RH
Hr analytics & big data : Spark en action dans un contexte RHHr analytics & big data : Spark en action dans un contexte RH
Hr analytics & big data : Spark en action dans un contexte RH
 
Stream processing et SQL
Stream processing et SQLStream processing et SQL
Stream processing et SQL
 
Chirurgie SEO / Solution répulsive contre les pandas #SEOCamp
Chirurgie SEO / Solution répulsive contre les pandas #SEOCampChirurgie SEO / Solution répulsive contre les pandas #SEOCamp
Chirurgie SEO / Solution répulsive contre les pandas #SEOCamp
 
Synchroniser ses applications (plus) simplement
Synchroniser ses applications (plus) simplementSynchroniser ses applications (plus) simplement
Synchroniser ses applications (plus) simplement
 
Comment passer de SEO à SEO + data
Comment passer de SEO à SEO + dataComment passer de SEO à SEO + data
Comment passer de SEO à SEO + data
 
Stream processing et SQL
Stream processing et SQLStream processing et SQL
Stream processing et SQL
 
Intégration des données avec Talend ETL
Intégration des données avec Talend ETLIntégration des données avec Talend ETL
Intégration des données avec Talend ETL
 
Les secrets d'un bon tableau de bord excel
Les secrets d'un bon tableau de bord excelLes secrets d'un bon tableau de bord excel
Les secrets d'un bon tableau de bord excel
 
Core Web Vitals : Comprendre, Mesurer, Optimiser
Core Web Vitals : Comprendre, Mesurer, OptimiserCore Web Vitals : Comprendre, Mesurer, Optimiser
Core Web Vitals : Comprendre, Mesurer, Optimiser
 
La puissance des pseudo-éléments
La puissance des pseudo-élémentsLa puissance des pseudo-éléments
La puissance des pseudo-éléments
 
Matinale "Data Science et Machine Learning"
Matinale "Data Science et Machine Learning"Matinale "Data Science et Machine Learning"
Matinale "Data Science et Machine Learning"
 
Cours html5
Cours html5Cours html5
Cours html5
 
Salesforce Einstein analytics - Formation sur les-bases - By iMalka
Salesforce Einstein analytics - Formation sur les-bases - By iMalkaSalesforce Einstein analytics - Formation sur les-bases - By iMalka
Salesforce Einstein analytics - Formation sur les-bases - By iMalka
 
ASP.NET from Zero to Hero
ASP.NET from Zero to HeroASP.NET from Zero to Hero
ASP.NET from Zero to Hero
 
Paris Web
Paris WebParis Web
Paris Web
 
présentation-stage2
présentation-stage2présentation-stage2
présentation-stage2
 
SplunkLive! Paris 2018: Getting Data In
SplunkLive! Paris 2018: Getting Data InSplunkLive! Paris 2018: Getting Data In
SplunkLive! Paris 2018: Getting Data In
 

Plus de Erwan Tanguy

Sendinblue freelance fair tour
Sendinblue freelance fair tourSendinblue freelance fair tour
Sendinblue freelance fair tourErwan Tanguy
 
Sendinblue : la plateforme française pour l'emailing et la newsletter
Sendinblue : la plateforme française pour l'emailing et la newsletterSendinblue : la plateforme française pour l'emailing et la newsletter
Sendinblue : la plateforme française pour l'emailing et la newsletterErwan Tanguy
 
Outils collaboratifs en formation
Outils collaboratifs en formationOutils collaboratifs en formation
Outils collaboratifs en formationErwan Tanguy
 
Automation et réseaux sociaux
Automation et réseaux sociauxAutomation et réseaux sociaux
Automation et réseaux sociauxErwan Tanguy
 
Meetup cssflip : shapes et clip-path
Meetup cssflip : shapes et clip-pathMeetup cssflip : shapes et clip-path
Meetup cssflip : shapes et clip-pathErwan Tanguy
 
Automation : publier sur les réseaux sociaux quand on a pas le temps
Automation : publier sur les réseaux sociaux quand on a pas le tempsAutomation : publier sur les réseaux sociaux quand on a pas le temps
Automation : publier sur les réseaux sociaux quand on a pas le tempsErwan Tanguy
 
Creer un site internet sous WordPress
Creer un site internet sous WordPress Creer un site internet sous WordPress
Creer un site internet sous WordPress Erwan Tanguy
 
Organiser une veille digitale
Organiser une veille digitaleOrganiser une veille digitale
Organiser une veille digitaleErwan Tanguy
 
Diigo – social bookmarking
Diigo – social bookmarkingDiigo – social bookmarking
Diigo – social bookmarkingErwan Tanguy
 
Video social marketing et cv - les bases
Video social marketing et cv - les basesVideo social marketing et cv - les bases
Video social marketing et cv - les basesErwan Tanguy
 
Référencement naturel (SEO) - les bases
Référencement naturel (SEO) - les basesRéférencement naturel (SEO) - les bases
Référencement naturel (SEO) - les basesErwan Tanguy
 
Sociallymap didacticiel
Sociallymap   didacticielSociallymap   didacticiel
Sociallymap didacticielErwan Tanguy
 
Animer un site web - web café
Animer un site web - web caféAnimer un site web - web café
Animer un site web - web caféErwan Tanguy
 
Google+ - présentation du média social
Google+ - présentation du média socialGoogle+ - présentation du média social
Google+ - présentation du média socialErwan Tanguy
 

Plus de Erwan Tanguy (20)

Sendinblue freelance fair tour
Sendinblue freelance fair tourSendinblue freelance fair tour
Sendinblue freelance fair tour
 
Sendinblue : la plateforme française pour l'emailing et la newsletter
Sendinblue : la plateforme française pour l'emailing et la newsletterSendinblue : la plateforme française pour l'emailing et la newsletter
Sendinblue : la plateforme française pour l'emailing et la newsletter
 
Outils collaboratifs en formation
Outils collaboratifs en formationOutils collaboratifs en formation
Outils collaboratifs en formation
 
Automation et réseaux sociaux
Automation et réseaux sociauxAutomation et réseaux sociaux
Automation et réseaux sociaux
 
Meetup cssflip : shapes et clip-path
Meetup cssflip : shapes et clip-pathMeetup cssflip : shapes et clip-path
Meetup cssflip : shapes et clip-path
 
Automation : publier sur les réseaux sociaux quand on a pas le temps
Automation : publier sur les réseaux sociaux quand on a pas le tempsAutomation : publier sur les réseaux sociaux quand on a pas le temps
Automation : publier sur les réseaux sociaux quand on a pas le temps
 
Creer un site internet sous WordPress
Creer un site internet sous WordPress Creer un site internet sous WordPress
Creer un site internet sous WordPress
 
Organiser une veille digitale
Organiser une veille digitaleOrganiser une veille digitale
Organiser une veille digitale
 
Slack
SlackSlack
Slack
 
Wordpress meetup
Wordpress meetupWordpress meetup
Wordpress meetup
 
Diigo – social bookmarking
Diigo – social bookmarkingDiigo – social bookmarking
Diigo – social bookmarking
 
Video social marketing et cv - les bases
Video social marketing et cv - les basesVideo social marketing et cv - les bases
Video social marketing et cv - les bases
 
Référencement naturel (SEO) - les bases
Référencement naturel (SEO) - les basesRéférencement naturel (SEO) - les bases
Référencement naturel (SEO) - les bases
 
Les base du Html5
Les base du Html5Les base du Html5
Les base du Html5
 
Newsletters rwd
Newsletters rwdNewsletters rwd
Newsletters rwd
 
Les bases du CSS3
Les bases du CSS3Les bases du CSS3
Les bases du CSS3
 
Sociallymap didacticiel
Sociallymap   didacticielSociallymap   didacticiel
Sociallymap didacticiel
 
Animer un site web - web café
Animer un site web - web caféAnimer un site web - web café
Animer un site web - web café
 
Twitter
TwitterTwitter
Twitter
 
Google+ - présentation du média social
Google+ - présentation du média socialGoogle+ - présentation du média social
Google+ - présentation du média social
 

Stratégie et veille : Extraire et trier des données en ligne

  • 1. Extraire et trier des données en ligne Erwan Tanguy Stratégie et veille
  • 2. Web scraping ? 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. Attention, il peut y avoir une utilisation légale ou illégale du web scraping. Nous nous intéresserons qu’à la première. Pour quoi faire ?  Transférer des données d’un site vers un autre site ou vers un document (type tableau Excel) ;  Transformer des données pour y ajouter une valeur avant de la partager sur des réseaux sociaux ;  Récupérer des informations provenant de la concurrence pour pouvoir les analyser ;  Illégal : récupérer des données et les publier à son compte ;  …
  • 3. Pour faire de la veille ? La veille est un élément stratégique important et souvent négligé. Elle aide à prendre des décisions, permet d’évoluer et de rester à l’écoute. Ce n’est en aucun cas de l’espionnage ! La veille numérique travaille à partir des données disponible légalement sur internet :  Sur des sites publics ;  Via des requêtes sur les moteurs de recherche ;  … La veille, associée à des techniques de web scraping, va pouvoir récupérer des données et les rendre lisibles, accessibles, pour un public large ou pour des personnes précises. Ces données, provenant généralement de sites web, pourront être récupérées au sein d’un document dynamique (un spreadsheet sur Google Drive par exemple) ou compilées sur un flux RSS dans le but d’alimenter une newsletter…
  • 4. Des outils de web scraping Pour récupérer des données :  Google spreadsheet ;  Import.io ;  Kimono ;  Feed43 ;  Yahoo! Pipes… Pour trier et transformer les données :  Yahoo! Pipes  Dlvr.it… Pour pousser les données :  IFTTT ;  Dlvr.it ;  Zapier… Pour partager les données :  Les suites d’outils Google (Drive, Group…) ;  Excel ;  Des intranets ou des sites privés…  Des sites ou des réseaux sociaux ouverts…
  • 5. Partons d’un exemple Sur une page de vente immobilière du site pap.fr, je voudrais suivre les nouvelles vente de maisons, d’appartements ou autres au fur et à mesure. URL : http://www.pap.fr/annonce/ vente-immobiliere-rennes- 35-g43618 Sur cette page, je ne souhaite récupérer que les informations de zones précises liées à ma recherche :
  • 6. Import.io Dans la liste des outils gratuits permettant de réaliser une récupération de données, vous pouvez utiliser Import.io qui propose un espace en ligne et une application. Cet outil est relativement simple à utiliser puisqu’il nécessite juste de zoner les parties de la page avec laquelle nous souhaitons réaliser un flux. Le flux obtenu pourra être récupérer en tableau soit dans Excel soit dans un spreadsheet sur Drive (avec la possibilité de le rendre dynamique). Pour des approches simples, Import.io peut être redoutable mais dès que le flux souhaité nécessite des précisions, des filtres, il faudra passer sur un outil plus performant et plus complexe.
  • 7. Import.io Plusieurs méthodes d’extraction des données sont possibles via l’application gratuite :  Magic propose automatiquement de récupérer les données qui semblent être les plus évidentes  Extractor & Classic Extractor vous permet de cibler les éléments de la page et de les organiser dans un tableau  Authenticated Extrator vous permet d’extraire des données sur un site qui nécessite une authentification (attention, cela peut être illégale si vous transmettez ces données)
  • 8. Import.io Une fois votre page mise en place, vous allez pouvoir ouvrir le Data set. Dans cette partie de l’application, vous allez pouvoir ajouter les liens des paginations suivantes pour récupérer la suite des données. Vous trouverez aussi des outils pour intégrer les résultats dans un tableur (Excel ou spreadsheet) ou directement les télécharger en csv, html ou excel… Exemple pour insérer le résultat d’une page dans un spreadsheet de Google : =ImportHtml("https://query.import.io/store/connect or/97a340a3-5ae0-4c2b-9f06- 8931d7f8ebe6/_query?_user=a4b8bb0e-5f58-4315- 805c- ae9f5c0d0d42&_apikey=YOUR_API_KEY&format=HT ML&input/webpage/url=http%3A%2F%2Fwww.pap.f r%2Fannonce%2Fvente-immobiliere-rennes-35- g43618"; "table"; 1)
  • 9. kimonolabs Kimonomabs propose une plateforme en ligne et un bookmarklet pour déclencher la récupération des données sur une page. Les formats de sorties sont en json, csv ou rss. Assez simple donc ensuite de les importer en dynamique sur un spreadsheet par exemple. Comme pour import.io, l’outil étant simple, il reste limité. Pour notre exemple, il est impossible de récupérer les images des annonces.
  • 10. kimonolabs À partir du bookmarklet, vous allez pouvoir définir, propriété par propriété, les différents éléments de votre tableaux. Si vous souhaitez récupérer un flux RSS par la suite, je vous conseille de suivre les noms « title » et « description » pour définir les données principales, cela simplifiera sa création. Une fois terminé, il ne vous reste plus qu’à enregistrer votre API et la consulter ou l’intégrer à une plateforme ou un logiciel.
  • 11. Yahoo! Pipes Yahoo! a mis en place un outil assez puissant qui permet de mettre en place des tuyaux (‘pipes’) qui vont pouvoir regrouper des informations provenant de flux RSS, de pages web, de CSV ou de json. Ces informations pourront ensuite être traitées pour filtrer ou modifier les données dans le but de les valoriser. Plus technique que les deux précédents outils, il est aussi plus redoutable d’efficacité.
  • 12. Yahoo! Pipes Comme le permet aussi dans une certaine mesure import.io, le langage XPath nous donne la possibilité de cibler précisément des zones. Dans notre exemple, toutes les annonces sont dans des éléments html « li » avec une classe « annonce », ce qui donne en XPath : //li[@class="annonce"] //li indique que nous cherchons le ou les nœuds « li » dans la page [@class="annonce"] pour ne prendre que ceux qui ont la classe « annonce ».
  • 13. Yahoo! Pipes Avant de définir les éléments du flux RSS final, nous allons correctement paramétrer la date de publication. Dans les résultats obtenus avec le Xpath, nous pouvons dérouler un élément et y trouver la date en français : div.0.span.content Avec le module Regex, nous allons reformuler la date pour quelle se présente sous la forme 2015-02-23T07:00:00.00 Nous remplaçons donc la valeur intitial (ici 23 février 2015) appelé ainsi « (.*) (.*) (.*) » par « $3-$2- $1T07:00:00.00 ». $1, $2 et $3 représentent les valeurs mémorisées par les 3 (.*) !
  • 14. Yahoo! Pipes Il faut ensuite remplacer le nom du mois par son chiffre :  janvier > 01  février > 02  … Une fois les dates formatées, nous allons pouvoir mettre en place correctement notre flux.
  • 15. Yahoo! Pipes Avec le module « Create RSS », nous allons indiquer pour chaque élément la valeur correspondante.  Titre : div.0.a.span.0.content  Lien : div.0.a.href  Date : div.0.span.content  URL de l’image : div.2.div.0.a.0.img.src Enfin, nous allons mettre une première valeur dans la description, le prix du bien immobilier : div.0.a.span.1.content En effet, nous avons plusieurs valeurs à saisir mais peu d’élément pour les contenir. Nous allons donc travailler la description pour qu’elle puisse contenir un maximum d’informations. Enfin, pour finir avec ce module, nous allons ajouter l’URL de l’image dans l’espace « Author » qui n’est pas utilisé. Cela nous permettra, dans un spreadsheet, d’afficher l’image correctement (Google spreadsheet ne reconnait pas les medias associés).
  • 16. Yahoo! Pipes Pour finaliser notre flux, il nous reste à intégrer 4 valeurs dans la description : 1. Le bloc textuel ; 2. Le nombre de pièces ; 3. Le nombre de chambres ; 4. La surface. Nous allons pour cela utiliser un module Regex pour ajouter du contenu avant (« ^ ») ou après (« $ ») le contenu déjà en place dans description. Pour commencer nous allons ajouter le terme prix devant la valeur en place. Nous plaçons donc devant (replace : ^) les éléments « Prix : ». Pour que le : ne soit pas collé à la valeur existante, il est utile de rajouter un espace.
  • 17. Yahoo! Pipes Pour le reste, ligne par ligne, nous allons soit placer des sauts de ligne, soit du contenu, à la suite des données déjà présentes avec le symbole $. Le contenu se trouve là : ${div.2.div.1.p}. Et les 3 autres valeurs respectivement là ${div.2.div.1.ul.li.0.p}, là ${div.2.div.1.ul.li.1.p} et là ${div.2.div.1.ul.li.2.p}. Vous nommez et enregistrez votre flux et c’est prêt. Vous pouvez ensuite l’intégrer à un spreadsheet comme pour les précédents, le connecter à votre boite mail ou à d’autres services via des applications comme IFTTT.
  • 18. Yahoo! Pipes Pour améliorer votre flux, vous pouvez ajouter les URL des paginations dans d’autres modules XPath puis les unir avant d’opérer les modifications. Avec le module « Filtre », vous pouvez définir des termes qui doivent ou ne doivent pas apparaître. Ici, par exemple, il faut qu’il y ait le terme appartement dans le titre. Pour aller plus loin, il est possible de mettre en place un formulaire qui vous permettre de choisir le terme présent dans le titre et de générer un flux propre à chaque terme.
  • 19. Voir en ligne  La page sur pap.fr : http://goo.gl/62sOtz  La présentation sur slideshare (téléchargeable en PDF) : http://goo.gl/HxmWim  Le pipe sur Yahoo! Pipes : http://goo.gl/1EZ7TC  Tableau des données sur import.io : http://goo.gl/WsRo7u  Flux RSS du kimonolabs : http://goo.gl/hRdqcX
  • 20. ErwanTanguy www.erwantanguy.fr www.digital-strategy.fr www.ouestlab.fr Consultant et formateur Web, veille numérique, réseaux sociaux, référencement Spécialiste CMS Wordpress, SPIP HTML, CSS3, jQuery, PHP contact@erwantanguy.fr 06 62 15 11 02