Geo-web scrapping


On a tous été confronté à un moment donné au besoin d’extraire des données indisponibles sur des open data et de pouvoir les spatialiser. Avec cet exemple, j’espère pouvoir donner des pistes. Je vais donc montrer pour ceux qui ne le sauraient pas comment extraire des données immobilières.

Je vais donc grâce à un logiciel assez simple d’utilisation et sans utiliser une ligne de code, faire du web scraping. On va utiliser ici le plug-in de google chrome : « Web scraper ». Une fois télécharger, pour l’activer, je vais ouvrir le code source du site dont je veux extraire de manière automatique certaines données.

Une fois que c’est fait, je vais créer une nouvelle sitemap où j’y entre un nom fictif et l’URL de la page d’accueil.

Pour extraire l’ensemble des données que je veux, je vais créer un sélecteur qui va entrer et sortir sur les différents liens de la page d’accueil. Je vais donc dire à mon plug-in  que je veux extraire des liens et que ma sélection sera multiple. Une fois que ce sera fait et que mes liens sur lesquels j’aurais cliqué seront en rouge, je vais appuyer sur don selecting puis sur save selector.

Je clique ensuite sur un des liens dont je veux extraire la donnée puis je crée plusieurs sélecteurs qui auront pour racine(parents_selectors) mon sélecteur d’url (dans le cas présent « accueil ») afin de prendre la donnée et de l’identifier à un chemin d’accès précis et à une variable précise tout en précisant qu’il s’agit ici d’une donnée texte.

Dernière étape importante, je dois mettre en place une pagination afin d’automatiser mon processus d’extraction des données à l’échelle de l’ensemble du site. Pour ce faire, je vais créer un nouveau sélecteur et je vais lui demander d’avoir pour racine la racine du projet, le sélecteur accueil qui regroupe l’ensemble des url dont certains sélecteurs servant à extraire des données que j’aurais choisi d’extraire seront implémenter ainsi que le sélecteur de pagination lui-même. Je retourne enfin sur l’édition de mon sélecteur accueil et je demande que pagination soit également sa racine.

Grâce à cette procédure, j’ai créé une boucle à mon programme qui lui demande d’aller sur les URL du site, d’extraire des données que j’aurais choisi puis de tourner la page et de répéter l’opération jusqu’à ce que le programme ait fini son extraction.

Je vais ensuite sur le graph selector pour vérifier que j’ai bien réussi à créer ma boucle ou non.

Je vois que ma boucle a été créée : je peux donc passer à l’étape suivante : je lance mon programme. Une fois mon programme terminé et que les données que je souhaite extraire sont chargées, j’exporte mes données en csv.

J’ordonne enfin mes données de manière que le géocodeur que j’utilise sache convertir la donnée adresse que j’ai extraite en donnée longitude et latitude. Une fois cette étape terminée, je peux intégrer alors mes données dans mon SIG et je peux commencer à faire une analyse spatiale dans le cas présent sur l’immobilier dans les Hauts-de-Seine. Cela pourrait me permettre d’établir un comparatif de prix en fonction de la localisation et de croiser ce type de donnée avec des données socio-économiques ainsi que les différentes offres de services présentes dans le secteur de mon bien immobilier.