[Tutoriel] : Comment optimiser vos recherches immobilières avec Knime ?

Optimiser les recherches immobilières avec Knime

 

Vous vous demandez comment optimiser les recherches immobilières ? En cette période de confinement vous rêvez probablement d’une habitation plus grande ? Mais comment faire pour ne pas vous retrouver à arpenter internet, scrollant les pages en renseignant encore et toujours les mêmes critères. Avec KNIME ANALYTICS PLATFORM, les annonces viennent à vous directement !

 

Pour optimiser les recherches immobilières, collecter les informations d’un site web

 

Avant tout, il va falloir effectuer une première recherche sur un site d’annonces immobilières afin de générer une page de résultats avec vos critères. Copier l’url de la page de résultats.

 

Recherches immobilières Knime

 

Identifier les contenus à conserver

 

Critères de recherches immobilières

 

J’ai décidé de remonter les éléments suivants : Type de bien, Nombre de pièces, Montant du loyer, Le type de charges (comprises ou non), Arrondissement, Quartier, Nombre de Chambres et la Surface.

Pour cela, il faut copier les expressions XPath liées. Avec Google Chrome, sur la page de résultats, faire un clic droit et sélectionner « Inspecter ». Après avoir fait CTRL+SHIFT+C, vous pouvez repérer la partie du code associée en cliquant sur un bloc d’informations.

 

SIte immobilier

 

Ensuite, allez chercher l’information ciblée en développant les sous-parties dans le code identifié précédemment. Puis faites un clic droit « Copy », puis sélectionner « Copy full XPath » et coller dans un fichier Excel. Ajouter une colonne avec le nom de l’élément et le type de données attendu en sortie (par soucis de simplicité nous allons fixer le type sur « String » pour chaine de caractères).

Voici à quoi ressemble une expression XPath : « /html/body/div[2]/div/div/div[3]/div/div[2]/div[1]/div[2]/div[1]/div[1]/div »

Le chiffre en rouge correspond à la première annonce affichée, il faudra donc prévoir dans KNIME une étape pour faire varier ce chiffre afin de ne pas avoir à répéter cette étape pour toutes les annonces. Recommencer l’étape pour tous les éléments à remonter. Scinder la colonne avec l’XPath en 2 au niveau du chiffre à faire varier. Vous devriez obtenir le résultat ci-dessous.

 

Xpath

Création du Workflow Knime

 

Workflow Knime

 

Avec ces informations, il est temps de commencer notre Workflow !

  1. Créer une table avec la boîte Table Creator et insérer l’URL de la page des résultats de recherche dans une colonne URL.

Pour la suite nous allons utiliser des boîtes issues d’une extension Knime qu’il faudra préalablement installer : Palladian.

  1. Ajouter la boîte http Retriever et dans la fenêtre de configuration sélectionner URL en tant que URL input puis valider.
  2. Puis ajouter la boîte HTML Parser et selectionner Result en Input puis valider.
  3. Ensuite, sur une autre branche du Workflow, ajouter une nouvelle boîte Table Creator et coller les données du fichier Excel contenant les XPath (renommer les colonnes en conséquence).
  4. A la suite ajouter une boîte Counting Loop Start et dans la fenêtre de configuration définir un nombre de boucle (correspond au nombre d’annonce à remonter), ici 35.

Continuez en ajoutant une boîte String Manipulation pour concaténer XPath1, le numéro d’itération actuel et XPath2 dans une nouvelle colonne XPath0 comme ci-dessous.

 

Knime

 

  1. Il faut ensuite ajouter une autre boîte String Manipulation pour remplacer « / » par « /dns : » (condition requise pour l’utilisation de la boîte XPath dans l’étape 9).
  2. A cette étape, ajouter une boîte Table Row To Variable Loop Start.
  3. Puis ajouter une boîte XPath afin de relier les 2 branches du Workflow. Dans la fenêtre de configuration, dans l’onglet Settings cliquer sur Add XPath et valider directement sans modification. Passer sur l’onglet Flow Variables et à l’aide des menus déroulants, affecter respectivement les variables Nom, XPath0 et Type à newColumn0, xpath0 et returnType0 avant de valider.
  4. A la suite, ajouter une boîte Loop End (Column Append).
  5. En enfin, ajouter une boîte Loop End.

En regardant les résultats, vous pouvez déjà voir que nous avons des données à notre disposition même si elles ne sont pas très lisibles. Nous allons devoir ajouter dans le workflow une partie pour nettoyer les données.

Traiter les données

 

Nettoyer les données

 

Nettoyer les données workflow Knime

 

  1. Commencer par ajouter une boîte Column Filter pour conserver uniquement les colonnes suivantes : Type, Nombre de pièces, Loyer, Charges, Arrondissement, Quartier, Surface, Nombre de Chambres et Iteration.
  2. Ensuite, ajouter une boîte Unpivoting et dans la fenêtre de configuration, dans la partie Value columns inclure Iteration. Dans la partie Retained columns exclure Iteration.

A la suite de la boîte Unpivoting constituer une branche parallèle.
a. Ici, ajouter une boîte Column Filter pour conserver les colonnes ColumnValues et Nombre de Chambres.
b. Et là, ajjouter une boîte Rule Engine afin de catégoriser les données dans une nouvelle colonne comme ci-dessous.

 

Knime

 

  1. 3. Ajouter une boîte Pivoting et dans la fenêtre de configuration, dans l’onglet Groups mettre uniquement ColumnValues dans la liste Group column(s). Puis dans l’onglet Pivots conserver uniquement la colonne prediction dans la liste Pivot column(s). Enfin dans l’onglet Manual Aggregation, ajouter Nombre de Chambres avec l’agrégation First (veillez à bien cocher Missing) et valider.

Répéter l’étape 3 pour en remplaçant le Nombre de chambres par la Surface.

  1. A l’aide d’une boîte Joiner effectuer une jointure entre les 2 branches de l’étape 3. Dans la fenêtre de configuration, dans l’onglet Joiner Settings ajouter la clé de jointure sur Row ID. Dans l’onglet Column Selection, conserver toutes les colonnes sauf une occurrence de ColumnValues et valider.
  2. Ajouter une boîte Column Aggregator pour concaténer les colonnes portant le nom Autres (provenant des 2 branches précédentes).

 

Column Agregator Knime Column Agregator Knime

 

Répéter l’opération pour Surface et Nombre de chambre.

  1. Sur la branche principale, à la suite de la boîte Unpivoting (fin de l’étape 2) ajouter une boîte Column Filter pour exclure RowIDs et ColumnNames.
  2. Ajouter une boîte Row Filter pour exclure les lignes où la colonne type contient une valeur nulle.
  3. Nous nous retrouvons donc avec 2 branches distinctes dans le Workflow que nous allons réunir avec une boîte Joiner et la clé de jointure RowID. Conserver une version de chaque colonne et exclure les 2 occurrences de ColumnValues.

 

Extraire les données

 

Extraction des données dans Knime

 

  1. Ajouter une boîte Column Resorter pour arranger les informations dans l’ordre que vous voudrez.
  2. Ajouter une boîte Excel Writer (XLS) pour générer l’extrait final.

 

Les données finales

 

Critères pour optimiser les recherches immobilières

 

Voilà ! Dès maintenant plutôt que de vous rendre sur un ou plusieurs sites internet, renseigner vos critères de recherches et scroller les différentes annonces ; vous pouvez simplement relancer le Workflow que vous avez fait afin d’obtenir un fichier avec toutes les annonces.

Ce tutoriel est déclinable pour toutes les informations que vous souhaiteriez remonter depuis un site internet. Alors à vos claviers !

Notre article sur l’optimisation des recherches immobilières avec Knime s’achève ici.

Vous souhaitez voir KNIME en action ? Participez à notre prochain webinar le mardi 26 mai à 11h !

Webinar Knime ventes immobilières

 

Retrouvez tous nos tutoriels KNIME par ici !

Author Profile

Kratchen GONAY

Laissez un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Catégories