Crawl'Immo

Pour un investissement fructueux

Contexte

Crawl'Immo était un de mes projets de semestre 5 à IN'TECH.
Le projet a été commandité par Julien Frisson, fondateur de l'entreprise Naeyo. En se renseignant sur l'investissement immobilier, Julien a remarqué qu'il n'existait aucun site permettant d'assister une personne pour investir dans l'immobilier.

Il s'est alors rapproché d'IN'TECH afin d'avoir une équipe pour développer un Proof of Concept (PoC) de la solution qu'il avait en tête. Cette solution est un site qui rassemble des annonces immobilières de plusieurs autres sites spécialisés et permet à l'utilisateur de calculer ses mensualités à payer selon un emprunt pour un bien souhaité. Julien est assisté d'une personne spécialiste de l'immobilier sur ce projet afin d’aider sur toutes les parties juridiques comme la compréhension et l'utilisation de la loi Pinel.

Mise en œuvre

Pour pouvoir réaliser le site, nous avons décidé d’utiliser le langage Python avec le framework Django, qui permet d’aider au développement de sites internet.
Python semblait être le meilleur choix car nous avons eu à développer un bot permettant de crawler les sites d'offres immobilières afin de pouvoir faire un site qui propose directement les annonces les plus intéressantes. C'est aussi une occasion pour nous de découvrir un nouveau langage de programmation très utilisé.

Un bot pratiquant le crawling a pour but d’explorer différents autres sites web pour en analyser le contenu et aussi possiblement y récupérer des données. Vu que nous devions récupérer des annonces immobilières provenant de plusieurs sites afin de les indexer sur un seul site (le nôtre), on voit rapidement en quoi un robot crawler est indispensable pour la bonne réalisation de ce projet.
Nous avons décidé d'utiliser Scrapy, qui est un bot en Python permettant de facilement crawler des sites web.

Un problème nous a été remonté par rapport au bot: il devait être autorisé par Google et les sites que nous voulons crawler. En effet Google regarde sur chaque site qu’il a indexé s’il dispose d’un fichier robots.txt. Ce document contient une liste des pages ou fichiers qui peuvent, ou non, accéder au site et à ses informations. Julien Frisson a donc dû dresser une liste des sites dont il aimerait que les annonces remontent sur notre site afin qu’il puisse les contacter et demander une autorisation pour notre bot de crawler les sites en question. Ce problème n'était donc pas de notre ressort, mais il nous a permis d’apprendre comment un robot est autorisé ou non sur un site qui ne nous appartient pas.
Une fois le bot prêt de notre côté, nous avons pu l'ajouter à notre site que nous avons développé en parallèle.

Pour le site en lui-même, la principale problématique était de pouvoir calculer quelle annonce immobilière est la meilleure selon les besoins de l'utilisateur.
Le calcul a été décrit avec l'aide de Julien et la spécialiste afin qu'il soit le plus complet et efficace pour l’internaute. Cette partie a été assez compliquée à comprendre de notre part. La législation n'étant pas notre spécialité, c'était quelque chose de nouveau et il y avait beaucoup d'informations à prendre en compte. Mais une fois le calcul défini et bien compris de notre côté, nous avons pu l'implémenter sur le site, et continuer le développement du site de manière sereine.

Liste des offres sur le site
Affichage des détails d'une offre

­



Sur le site, je me suis principalement occupé de faire l'affichage des détails d'une offre que nous récupérions.

Affichage des détails d'une offre
Affichage des détails d'une offre

­

On peut voir avec les deux captures d’écran ci-dessus que l’on utilise principalement "offer.X" pour afficher des données dans les différentes balises, où X est la donnée que l’on veut afficher. On parcourt aussi toutes les images que nous avons récupérées afin d’avoir un carrousel pour les afficher. Les données proviennent du code ci-dessous, qui récupère l’offre et ajoute les informations à l’objet "offer" que nous utilisons au-dessus. La requête SQL est elle utilisée pour récupérer les images liées à l’offre pour le carrousel.

Affichage des détails d'une offre

Résultats

Malheureusement nous n'avons pas eu le temps de finir au complet notre PoC. Notre équipe avait un autre projet qui nous prenait du temps, et à la demande de l'école nous avons dû abandonner celui-là au profit de l'autre.
Malgré ce contretemps, nous avons rendu ce que nous avons produit à Julien. Sa réponse fut extrêmement positive sur le projet et notre avancée, et il nous a fait part de l'utilité que ce PoC pouvait avoir pour le futur de son projet, qui est le développement de la solution complète.

J’ai été un peu déçu de ne pas pouvoir mener à bout ce projet, mais je n’en retient que des bonnes choses. Le développement de ce projet m'a permis de découvrir une partie du monde de l'investissement immobilier, mais aussi de développer mes compétences dans un langage de programmation que je ne connaissais pas et d'y créer un intérêt fort grâce à sa facilité d'utilisation et à sa lisibilité.

J'ai développé en tant que projet personnel un bot, comme expliqué dans ma page sur le Python, et je pense pouvoir dire que je commence à maîtriser les bases du langage grâce à ces 2 projets, et je compte bien en produire d'autres dans mon temps libre.