Le guide complet de l'extraction de données immobilières sur le web
Robert Munceanu le 14 juillet 2021

Le marché de l'immobilier est en constante expansion et, avec lui, les agents immobiliers et les entreprises tentent de trouver de nouvelles solutions pour déterminer ce que l'avenir leur réserve. Si l'immobilier, en général, ne change pas radicalement du jour au lendemain, il est influencé par bien trop de facteurs pour qu'une seule personne ou même une organisation puisse en suivre l'évolution.
Les prix vont-ils augmenter ou baisser ? Quels sont les quartiers les plus demandés ? Y a-t-il des biens immobiliers qui ont besoin d'être rénovés pour voir leur valeur grimper en flèche ? Ce ne sont là que quelques-unes des questions que les agents immobiliers se posent fréquemment.
Pour répondre à ces questions, il faut disposer d'un grand nombre de données de recherche à des fins de comparaison, et la collecte manuelle de telles quantités d'informations s'apparente à une chasse aux oies sauvages. C'est là que le web scraping s'avère utile, car il permet de collecter et de structurer les données aussi rapidement que vous pouvez le dire :

Comme nous le savons tous, le web scraping est le moteur de l'extraction de données ! Si vous voulez en savoir plus sur les raisons pour lesquelles quelqu'un voudrait extraire des données immobilières d'Internet et sur la manière de le faire correctement, continuons notre voyage ensemble. Nous avons préparé à la fois une solution DIY et un guide étape par étape sur la façon dont WebScrapingAPI peut le faire.
Pourquoi vous devriez récupérer des données sur l'immobilier
L'exploration du web permet de s'assurer que les informations extraites sur l'immobilier sont précises, crédibles et à jour. De cette manière, il est possible de prédire si le marché de l'immobilier va bientôt monter en flèche ou de voir dans quelle fourchette de prix son bien sera compétitif.
Pour les entreprises, les données web sont précieuses car elles permettent de prendre de meilleures décisions, d'établir de meilleurs prix et de dégager une marge bénéficiaire plus importante. Cependant, le problème est que chaque information doit être aussi fraîche que possible, ce qui fait du web scraping la solution la plus évidente.
Les types de données immobilières les plus couramment extraits sont les suivants :
- Type de bien
- Prix de vente
- Localisation
- Taille
- Aménagements
- Prix de location mensuel
- Places de parking
- Agent immobilier
Les informations énumérées ci-dessus peuvent faire le succès ou l'échec d'une agence immobilière. Elles font une énorme différence en termes de communication, de stratégie et d'efficacité, mais le plus grand avantage réside dans la manière dont les agents apprennent à connaître leurs biens et leur marché. Ensuite, il ne reste plus qu'à trouver le bon client.
Examinons quelques scénarios qui illustrent la valeur du web scraping :
Agences immobilières
- La prise de décision: Prendre des risques fait partie du travail, mais cela ne signifie pas qu'il faille le faire aveuglément. Faire des recherches avant d'acheter ou de vendre quelque chose est obligatoire pour travailler, et plus d'informations signifie de meilleures affaires.
- Prévoir le marché: Il est essentiel de savoir quand acheter et vendre des biens immobiliers pour obtenir les meilleurs résultats et les plus rentables. Certains types de biens immobiliers gagnent en popularité tandis que d'autres perdent de leur éclat. Certaines zones prospèrent tandis que d'autres stagnent. Savoir ce qui se profile à l'horizon est la clé de la longévité d'une entreprise.
Personnes ordinaires
Le web scraping n'a pas pour seul objectif d'aider les entreprises. En fait, ce qui le rend si populaire, c'est en partie sa facilité d'utilisation pour une personne seule. Bien sûr, il faut avoir quelques connaissances en informatique, mais il existe de nombreux tutoriels pour vous aider. Voici d'ailleurs l'un d'entre eux !
- Achat et vente: Avant d'acheter ou de vendre un bien immobilier, vous devez en déterminer la valeur avec précision. Il serait dommage de vendre la maison de votre enfance et de la voir une semaine plus tard sur un site immobilier au double de son prix, n'est-ce pas ?
- Investir: Si vous souhaitez investir dans des biens immobiliers, soit en les achetant à bas prix pour les revendre plus tard avec profit, soit en les louant simplement, il est fortement recommandé de savoir à quel moment vous atteindrez le seuil de rentabilité et quels sont les retours sur investissement auxquels vous pouvez vous attendre.
Ok, c'est assez sur les cas d'utilisation. Voyons un peu de code !
Pour commencer, supposons que nous cherchions un nouveau logement à New York. Nous voulons acheter un bien avec au moins deux chambres et, bien sûr, une salle de bains. Nous commencerons donc notre recherche sur Realtor, extrairons des données et les comparerons pour trouver la meilleure offre.
Il existe plusieurs façons d'extraire du contenu de pages web. Cet article présente deux méthodes : l'une dans laquelle nous créons notre scraper web à partir de zéro et l'autre dans laquelle nous utilisons un outil déjà existant.
Tout d'abord, essayons de le faire nous-mêmes. Le code s'avérera plus tard utile lorsque nous utiliserons un outil professionnel de récupération de données sur le web.
Construire un scraper web pour extraire des données immobilières
J'ai choisi d'écrire en Python en raison de sa popularité dans le domaine du web scraping. Nous avons un tutoriel général pour l'extraction de données web en Python que vous devriez consulter !
Inspecter le code du site web
Les données que nous devons extraire se trouvent dans les balises imbriquées de la page web en question. Avant de commencer le scraping, nous devons les trouver. Pour ce faire, il suffit de cliquer avec le bouton droit de la souris sur l'élément et de sélectionner "Inspecter".

Une fenêtre "Browser Inspector Box" s'affiche, comme suit :

Dans cette fenêtre, nous naviguerons pour trouver les balises et les classes sous lesquelles se trouvent nos données essentielles. Cela peut sembler un peu intimidant au début, mais c'est de plus en plus facile avec l'expérience !
Trouver les données à extraire
We can see that everything we need to extract is within the <li> tag with the class ‘component_property-card’. If we go even deeper in the tag, we observe that the data referring to the number of beds and bathrooms are under the attribute ‘data-label’ with the values ‘pc-meta-beds’ and ‘pc-beta-baths’, respectively. Knowing this, we can proceed with writing our code!
Préparer l'espace de travail
Comme indiqué précédemment, nous utiliserons Python comme langage de programmation, vous devez donc le télécharger et l'installer.
Vous pouvez utiliser n'importe quel IDE avec lequel vous vous sentez à l'aise, mais je recommande d'utiliser PyCharm.
Après avoir créé un nouveau projet, facilitez votre travail en utilisant ces bibliothèques :
- Selenium: Utilisé pour les tests web et l'automatisation des activités du navigateur.
- BeautifulSoup: Utilisé pour analyser les documents HTML et XML.
- Pandas: Utilisé pour la manipulation des données. Les données extraites seront stockées dans un format structuré.
Les installer dans le projet est assez simple. Il suffit d'utiliser cette ligne de commande dans le terminal du projet : python -m pip install selenium beautifulsoup4 pandas
Rédiger le code
Commençons par importer les bibliothèques que nous avons installées précédemment :
from selenium import webdriver
from bs4 import BeautifulSoup
import pandas as pd
Pour extraire les données du site web, nous devons les charger en configurant le webdriver pour qu'il utilise le navigateur Chrome. Pour ce faire, il suffit de spécifier le chemin où se trouve le pilote Chrome. N'oubliez pas d'ajouter le nom de l'exécutable à la fin - et pas seulement son emplacement !
driver = webdriver.Chrome('your/path/here/chromedriver')
Outre le nombre de lits et de salles de bains, nous pouvons également extraire l'adresse, le prix et, pourquoi pas, la taille du bien. Plus nous disposons d'informations, plus il sera facile de choisir un nouveau logement.
Déclarez les variables et définissez l'URL du site web à récupérer.
prix = []
lits = []
bains = []
tailles = []
adresses = []
driver.get('https://www.realtor.com/realestateandhomes-search/New-York_NY')
Nous devons extraire les données du site web, qui se trouvent dans les balises imbriquées comme expliqué précédemment. Trouvez les balises avec les attributs mentionnés précédemment et stockez les données dans les variables déclarées ci-dessus. N'oubliez pas que nous ne voulons enregistrer que les propriétés comportant au moins deux lits et une salle de bain !
content = driver.page_source
soup = BeautifulSoup(content, features='html.parser')
for element in soup.findAll('li', attrs={'class': 'component_property-card'}):
price = element.find('span', attrs={'data-label': 'pc-price'})
bed = element.find('li', attrs={'data-label': 'pc-meta-beds'})
bath = element.find('li', attrs={'data-label': 'pc-meta-baths'})
size = element.find('li', attrs={'data-label': 'pc-meta-sqft'})
address = element.find('div', attrs={'data-label': 'pc-address'})
if bed and bath:
nr_beds = bed.find('span', attrs={'data-label': 'meta-value'})
nr_baths = bath.find('span', attrs={'data-label': 'meta-value'})
if nr_beds and float(nr_beds.text) >= 2 and nr_baths and float(nr_baths.text) >= 1:
beds.append(nr_beds.text)
baths.append(nr_baths.text)
if price and price.text:
prices.append(price.text)
else:
prices.append('No display data')
if size and size.text:
sizes.append(size.text)
else:
sizes.append('No display data')
if address and address.text:
addresses.append(address.text)
else:
addresses.append('No display data')
Superbe ! Nous disposons de toutes les informations dont nous avons besoin, mais où devons-nous les stocker ? C'est là que la bibliothèque pandas s'avère utile et nous aide à structurer les données dans un fichier csv que nous pourrons utiliser à l'avenir.
df = pd.DataFrame({'Address': addresses, 'Price': prices, 'Beds': beds, 'Baths': baths, 'Sizes': sizes})
df.to_csv('listings.csv', index=False, encoding='utf-8')
Si nous exécutons le code, un fichier nommé 'listings.csv' sera créé, et dans ce fichier, nos précieuses données !
Nous avons réussi ! Nous avons créé notre propre outil de web scraping ! Maintenant, entrons dans le vif du sujet et voyons quelles sont les étapes à suivre et les lignes de code à modifier pour utiliser un outil de scraping.
Utilisation d'une API de scraping web
Pour ce scénario, nous utiliserons bien sûr l'interface WebScrapingAPI.
Créer un compte WebScrapingAPI gratuit
Pour utiliser WebScrapingAPI, vous devez créer un compte. Ne vous inquiétez pas, les 5000 premiers appels à l'API sont gratuits, et vous n'avez pas besoin de partager des données personnelles, comme des informations sur votre carte de crédit. Après avoir créé votre compte et validé votre adresse électronique, vous pouvez passer à l'étape suivante.
Clé API

Pour utiliser WebScrapingAPI, vous devez vous authentifier à l'aide de la clé API privée, que vous trouverez sur le tableau de bord de votre compte. Notez que vous ne devez partager cette clé avec personne, et si vous pensez qu'elle a été compromise, vous pouvez toujours la réinitialiser en cliquant sur le bouton "Reset API Key".
Modifier le code
Parfait ! Maintenant que vous avez la clé API, nous allons effectuer les modifications nécessaires.
Nous n'utiliserons plus de pilote web. Au lieu de cela, la bibliothèque 'requests' enverra la requête à WebScrapingAPI et récupérera le code HTML du site web en tant que réponse.
import requests
from bs4 import BeautifulSoup
import pandas as pd
Ensuite, nous devons préparer quelques paramètres pour la requête : l'url du site web dont nous souhaitons extraire les données (agent immobilier) et notre clé API.
url = "https://api.webscrapingapi.com/v1"
params = {
"api_key": "XXXXXXX",
"url": "https://www.realtor.com/realestateandhomes-search/New-York_NY"
}
response = requests.request("GET", url, params=params)
N'oubliez pas de changer le contenu que beautifulsoup analyse. Au lieu de la source du pilote chromé, nous utiliserons la réponse reçue de l'API.
content = response.text
À partir de là, vous pouvez utiliser le même code que dans le scénario précédent. Les données seront toujours stockées dans un fichier CVS nommé "listings.csv".
Tout est fait !
Et c'est à peu près tout ; vous pouvez exécuter le code. WebScrapingAPI fera le travail et vous obtiendrez les données nécessaires pour trouver la maison idéale. Mais vous vous demandez peut-être "Quelle est la différence entre l'utilisation de WebScrapingAPI et le scraper que nous avons construit nous-mêmes ? Permettez-moi de vous expliquer.
Bricolage ou préfabrication
L'un des principaux avantages de l'utilisation de WebScrapingAPI réside dans ses proxys. Le service dispose d'un énorme pool de proxy rotatif qui garantit l'anonymat de ses utilisateurs lorsqu'ils surfent sur le web.
Cette fonction est également utile lorsque quelqu'un souhaite récupérer un site web en masse. Le fait d'effectuer plusieurs requêtes sur un site web dans un court laps de temps bloquera certainement votre IP, pensant qu'il s'agit d'une tentative de grief ou d'un robot ayant de mauvaises intentions.
L'utilisation d'un pool de proxy rotatif fera croire au site web que plusieurs utilisateurs interagissent avec lui, de sorte que vous ne serez pas détecté et que vous pourrez faire du scrape toute la journée.
De nombreux autres obstacles peuvent se dresser sur votre chemin lorsque vous scrapez le web, tels que les CAPTCHA ou l'empreinte du navigateur. Comme vous pouvez vous en douter, nous avons conçu WebScrapingAPI pour contourner tous ces obstacles et faciliter au maximum l'extraction de données. Si vous souhaitez en savoir plus sur ce sujet, consultez notre article sur les problèmes les plus courants rencontrés par les web scrapers.
Un outil, plusieurs cas d'utilisation
Nous sommes tous d'accord pour dire que le scraping du web est une excellente solution pour le secteur de l'immobilier, mais vous pouvez également l'utiliser à d'autres fins. Voici quelques exemples : surveillance de la concurrence, comparaison des prix des produits et formation d'algorithmes d'apprentissage automatique.
Je pourrais continuer, mais c'est déjà un tout nouveau sujet. Je ne vais pas m'éterniser sur cet article, je vous recommande donc de consulter ces sept cas d'utilisation des outils de web scraping.
Créer un outil de web scraping pendant votre temps libre semble assez intéressant, mais il y a beaucoup de choses à prendre en compte, des choses qui vous feront perdre un temps considérable en développement. Vous trouverez ici une discussion approfondie sur les outils de web scraping, qu'ils soient bricolés ou préfabriqués.
Si nous parlons de gratter quelques pages web, construire l'outil soi-même peut être une solution rapide. Cependant, un travail professionnel nécessite un outil professionnel, idéalement une API, WebScrapingAPI. Ai-je mentionné l'essai gratuit ?
Nouvelles et mises à jour
Restez au courant des derniers guides et nouvelles sur le web scraping en vous inscrivant à notre lettre d'information.
We care about the protection of your data. Read our <l>Privacy Policy</l>.Privacy Policy.

Articles connexes

Explorez les complexités du scraping des données de produits Amazon avec notre guide approfondi. Des meilleures pratiques aux outils tels que l'API Amazon Scraper, en passant par les considérations juridiques, apprenez à relever les défis, à contourner les CAPTCHA et à extraire efficacement des informations précieuses.


Apprenez à récupérer des sites web dynamiques en JavaScript à l'aide de Scrapy et de Splash. De l'installation à l'écriture d'un spider, en passant par la gestion de la pagination et des réponses Splash, ce guide complet propose des instructions pas à pas pour les débutants comme pour les experts.


Apprenez à récupérer des tables JavaScript en utilisant Python. Extraire des données de sites web, les stocker et les manipuler en utilisant Pandas. Améliorer l'efficacité et la fiabilité du processus de scraping.
