Les équipes immobilières ne veulent pas gérer d’infrastructure de scraping. Elles veulent savoir où l’offre augmente, où les prix sont réduits, ce que demandent les biens comparables et combien de temps les stocks restent disponibles. La couche de collecte est un moyen d’y parvenir, et pour de nombreuses équipes, une API de web scraping est le moyen le plus direct de l’obtenir sans recruter pour l’automatisation de navigateurs et les opérations de proxy.
Ce qu’il faut collecter et comment le modéliser une fois collecté est traité ailleurs sur ce blog : valorisations, loyers et données hypothécaires, un flux de données du marché immobilier en temps réel, et l’agrégation d’annonces sur plusieurs portails. Cet article porte sur la couche de collecte elle-même : pourquoi les portails immobiliers poussent les équipes vers une API, comment l’API s’applique aux pages immobilières, et comment fonctionne l’économie du système.
Pourquoi les portails immobiliers sont difficiles à collecter
Quatre caractéristiques des sites immobiliers les rendent plus difficiles que la plupart des autres.
Ils sont conçus pour les cartes et le défilement, pas pour les pages. Les résultats de recherche se chargent via JavaScript lorsqu’une carte bouge ou qu’une liste défile, si bien qu’une simple requête HTTP renvoie souvent une coquille vide.
Les résultats sont paginés et pilotés par curseur. Passer de la page un à la page deux dépend fréquemment d’un état côté serveur, ce qui casse les récupérations naïves page par page.
Ils sont localisés. Les portails servent le contenu par pays et parfois par région, donc ce que vous voyez dépend de l’origine apparente de la requête.
Ils sont protégés. Les inventaires à forte valeur et fréquemment actualisés attirent le trafic automatisé, et les portails les protègent en conséquence.
Gérer ces quatre aspects en interne implique des navigateurs headless, une gestion de proxy, une logique de réessai et un ajustement des empreintes. Une API de web scraping regroupe tout cela en une seule requête.
Comment l’API s’applique aux pages immobilières
Avec l’API Shifter Web Scraping, chaque problème de portail a un contrôle direct.
Vues carte et liste. render_js=1 exécute la page dans Chrome headless sans coût de crédit supplémentaire, et wait_for_css retient la capture jusqu’à ce que les cartes d’annonces soient réellement rendues. Des instructions JavaScript peuvent faire défiler ou cliquer sur un contrôle « charger plus » avant la capture. Voir le rendu JavaScript.
Cartes de résultats. extract_rules avec un type liste renvoie chaque carte d’annonce d’une page sous forme de JSON, un objet par annonce, sans analyseur HTML de votre côté.
Pagination. session_id conserve les cookies, l’état du navigateur et l’IP amont d’une requête à l’autre, ce qui permet de parcourir dans l’ordre un ensemble de résultats piloté par curseur. Les sessions expirent après 10 minutes d’inactivité, et le pays doit rester le même pendant toute la durée d’une session. Voir sessions et proxies.
Localisation. country prend un code ISO alpha-2 par requête. La géolocalisation globale et le pool résidentiel via premium_proxy=1 sont disponibles sur les plans Growth et supérieurs.
Preuve. screenshot=1 capture la page rendue, utile lorsque l’état d’une annonce à un moment donné compte, comme une baisse de prix ou un retrait.
Rendus longs. webhook=<URL> livre la réponse à votre point de terminaison lorsqu’elle est prête, au lieu de maintenir une connexion ouverte.
Une requête de résultats de recherche pour un marché ressemble à ceci :
curl "https://scrape.shifter.io/v1?api_key=YOUR_API_KEY\
&url=https%3A%2F%2Fportal.example.com%2Fsearch%3Fcity%3Dlyon\
&render_js=1&wait_for_css=.listing-card\
&country=fr&premium_proxy=1&session_id=lyon-walk-03\
&extract_rules=%7B%22listings%22%3A%7B%22selector%22%3A%22.listing-card%22%2C%22type%22%3A%22list%22%2C%22item%22%3A%7B%22price%22%3A%7B%22selector%22%3A%22.price%22%2C%22output%22%3A%22text%22%7D%2C%22area%22%3A%7B%22selector%22%3A%22.area%22%2C%22output%22%3A%22text%22%7D%2C%22link%22%3A%7B%22selector%22%3A%22a%22%2C%22output%22%3A%22%40href%22%7D%7D%7D%7D"
L’URL cible est encodée en URL car elle porte sa propre chaîne de requête, qui serait sinon lue comme des paramètres de la requête API. La réponse est un objet JSON unique avec un tableau listings. Un champ dont le sélecteur ne trouve rien revient sous forme de null, ce qui compte pour la surveillance, comme expliqué plus bas.
Comment différentes équipes l’utilisent
Les équipes d’acquisition et d’investissement surveillent les sous-marchés cibles pour repérer les nouvelles offres et les baisses de prix, et utilisent le timing des baisses comme signal de négociation. Ce dont elles ont besoin, c’est d’une détection d’événements le lendemain sur un ensemble défini de zones, pas d’un crawl national.
Les agences immobilières suivent leur part d’annonces par rapport aux concurrents par zone, et la vitesse à laquelle les annonces concurrentes évoluent. Il faut rester au niveau de l’agence : les coordonnées des agents dans les annonces sont des données personnelles et sont rarement nécessaires à l’analyse.
Les produits PropTech construisent des comparables et des flux d’annonces pour leurs propres utilisateurs. Ici, l’API n’est qu’une entrée dans un pipeline de normalisation, et les définitions de champs diffèrent selon le portail et le pays.
Les opérateurs locatifs surveillent les loyers demandés et les concessions dans leurs sous-marchés. Les concessions se trouvent souvent dans le texte de description plutôt que dans un champ de prix, donc les règles d’extraction doivent capturer la description, pas seulement le loyer affiché.
Les prêteurs et assureurs suivent les conditions de marché dans les zones où ils ont une exposition. La limite est constituée des données de marché publiées, jamais des informations individuelles sur l’emprunteur ou l’occupant.
L’économie : concevoir autour du crédit
Un crédit achète une requête réussie, quel que soit ce que cette requête renvoie. Le rendu, les règles d’extraction, les captures d’écran et les réessais propres de l’API sont inclus, et les requêtes échouées ou les erreurs cibles ne sont pas facturées.
Cela a une conséquence directe sur la conception pour l’immobilier. Une page de résultats de recherche qui renvoie quarante cartes d’annonces coûte le même crédit unique qu’une page de détail qui renvoie une seule annonce. Le schéma efficace consiste donc à collecter à partir des pages de résultats partout où la carte porte les champs dont vous avez besoin, prix, surface, pièces, lien, et à ne récupérer une page de détail que lorsqu’une annonce est nouvelle ou que sa carte a changé.
Pour un marché comptant quelques milliers d’annonces actives, cette différence représente souvent un ordre de grandeur en crédits. Cela améliore aussi la fraîcheur des données, car vous pouvez revisiter les pages de résultats plus souvent pour la même dépense.
Deux autres leviers de coût. Actualisez selon un rythme adapté à la rapidité d’évolution de chaque marché, puisqu’un rythme quotidien suffit pour la plupart des surfaces d’annonces. Et surveillez les crédits dépensés sur des lignes correctement analysées, car un sélecteur cassé consomme quand même un crédit pour chaque réponse réussie mais inutile.
Surveiller les ruptures silencieuses
Les portails se refont, et un sélecteur modifié ne fait pas échouer la requête. Elle renvoie null, la requête réussit et le crédit est dépensé.
Suivez le taux de null par champ, par portail et par pays sur une fenêtre glissante, et alertez lorsqu’il bondit par rapport à sa base. Versionnez vos règles d’extraction pour qu’une correction puisse être tracée, et stockez les réponses brutes avant analyse pour qu’une règle corrigée puisse être rejouée sans payer pour récupérer à nouveau. Le schéma de chargement est décrit dans le transfert des données de l’API de web scraping vers SQL.
Quand une API est la bonne couche de collecte, et quand elle ne l’est pas
Choisissez l’API lorsque le rendu et la gestion anti-bot constituent la charge principale, lorsque l’équipe est petite ou orientée données plutôt qu’infrastructure, et lorsqu’une facturation prévisible par succès compte plus que le coût unitaire le plus bas possible.
Choisissez des proxies autogérés lorsque vous avez besoin de flux de navigateur entièrement personnalisés, que vous fonctionnez à une échelle où posséder la pile est moins cher, ou que vous disposez déjà d’ingénieurs en scraping. L’approche basée sur les proxies est traitée dans les proxies pour les données immobilières.
Choisissez d’abord un flux sous licence partout où il en existe un pour votre marché. La couverture et la qualité des champs sont généralement meilleures, et les conditions sont claires. Utilisez la collecte pour ce qu’une licence ne fournit pas.
Rester du bon côté
Respectez les conditions de chaque portail et gardez des volumes de requêtes proportionnés. Traitez par défaut les coordonnées des propriétaires, agents et occupants comme des données personnelles et supprimez-les à l’ingestion lorsque l’analyse n’en a pas besoin. Utilisez les captures d’écran comme preuve de ce qu’une annonce montrait, pas comme du matériel à republier. Le cadre plus large est présenté dans les proxies résidentiels et la conformité RGPD.
FAQ
Ai-je besoin du rendu JavaScript pour les portails immobiliers ?
Pour la plupart des portails modernes, oui, car les résultats d’annonces se chargent après la page initiale. Cela coûte le même crédit qu’une récupération statique, donc il y a peu de raisons de ne pas l’activer là où les résultats sont rendus côté client.
Une seule API peut-elle couvrir des portails dans plusieurs pays ?
Oui, avec country défini par requête et une session par marché. La géolocalisation globale nécessite un plan Growth ou supérieur.
Comment parcourir de manière fiable des résultats de recherche paginés ?
Utilisez un session_id par recherche, gardez le pays constant à l’intérieur de celle-ci, et gardez le parcours en mouvement, puisque les sessions expirent après 10 minutes d’inactivité.
Est-il moins cher de scraper les pages de détail ou les pages de résultats ?
Les pages de résultats, partout où la carte d’annonce porte les champs dont vous avez besoin. Un crédit renvoie de nombreuses annonces, et les pages de détail peuvent être réservées aux annonces nouvelles ou modifiées.
L’essentiel
Pour la plupart des équipes immobilières, la partie difficile de l’intelligence de marché n’est pas de décider quoi mesurer. C’est d’obtenir des données fiables à partir de portails conçus pour les cartes, le défilement et les visiteurs humains. Une API de web scraping transforme le rendu, la pagination, la localisation et les réessais en paramètres de requête, et ne facture que lorsque les données arrivent.
Concevez autour du crédit en collectant d’abord à partir des pages de résultats, parcourez les recherches avec des sessions par marché, surveillez les taux de null pour détecter les ruptures silencieuses, et privilégiez un flux sous licence partout où il en existe un. Le produit se trouve sur la page Web Scraping API, avec les plans sur la page tarifaire, et le cas d’usage plus large sur la page immobilier.