Maison >développement back-end >Tutoriel Python >Récupérer des données immobilières avec Python pour trouver des opportunités

Récupérer des données immobilières avec Python pour trouver des opportunités

DDD
DDDoriginal
2025-01-16 12:09:58582parcourir

Scraping real estate data with Python to find opportunities

Ce tutoriel explorera comment utiliser la bibliothèque de requêtes de Python pour extraire les données immobilières d'une API. Nous apprendrons également comment appliquer des filtres pour récupérer des propriétés potentiellement avantageuses dont les prix ont récemment été réduits.


Présentation

Lorsque vous recherchez de belles opportunités d'investissement immobilier, les récentes baisses de prix sont souvent l'un des indicateurs les plus importants. Disposer d'un outil qui affiche ces propriétés rapidement peut vous faire gagner beaucoup de temps et peut vous aider à prendre une longueur d'avance avant que quiconque ne le remarque !

Dans cet article nous allons :

  1. Discutez des bases de l'interaction avec l'API immobilière à l'aide de requêtes.
  2. Découvrez comment utiliser les paramètres de requête pour filtrer les résultats, en particulier en vous concentrant sur les requêtes de changement de prix.
  3. Analyser et afficher les données renvoyées dans un format concis.

Exigences

  • InstalléPython 3
  • Invite de terminal ou de ligne de commande
  • Familier avec les bases de la bibliothèque de requêtes Python
  • Clé API (si requise par l'API)

Étape 1 : Comprendre l'API

L'API que nous utilisons peut renvoyer les données suivantes :

  • ID de propriété
  • Titre ou adresse
  • Prix
  • Emplacement
  • Modifications de prix historiques
  • Autres informations connexes

Paramètres clés de requête

Cette API prend en charge plusieurs paramètres de requête qui nous aident à filtrer les résultats :

参数 类型 描述
**includedDepartments[]** 数组 按部门过滤。示例:departments/77
**fromDate** 日期 仅检索在此日期之后列出(或更新)的房产。
**propertyTypes[]** 数组 按房产类型过滤。示例:0代表公寓,1代表房屋,等等。
**transactionType** 字符串 0代表出售,1代表出租,等等。
**withCoherentPrice** 布尔值 仅检索价格与市场价格一致的房产。
**budgetMin** 数字 最低预算阈值。
**budgetMax** 数字 最高预算阈值。
**eventPriceVariationFromCreatedAt** 日期 创建价格类型事件的日期——包含在内。
**eventPriceVariationMin** 数字 价格变化的最小百分比(负数或正数)。
Nous accorderons une attention particulière au paramètre **eventPriceVariation** pour **trouver les propriétés** dont le prix a baissé.

Étape 2 : Créer une demande

Ce qui suit est un exemple de script pour interroger un point de terminaison à l'aide de la bibliothèque de requêtes de Python. Ajustez les paramètres et les en-têtes selon vos besoins, surtout si X-API-KEY est requis.

<code class="language-python">import requests
import json

# 1. 定义端点URL
url = "https://api.stream.estate/documents/properties"

# 2. 创建参数
params = {
    'includedDepartments[]': 'departments/77',
    'fromDate': '2025-01-10',
    'propertyTypes[]': '1',    # 1可能代表“公寓”
    'transactionType': '0',    # 0可能代表“出售”
    'withCoherentPrice': 'true',
    'budgetMin': '100000',
    'budgetMax': '500000',
    # 关注价格变化
    'eventPriceVariationFromCreatedAt': '2025-01-01',  # 从年初开始
    'eventPriceVariationMin': '-10',  # 至少下降10%
}

# 3. 使用API密钥定义标头
headers = {
  'Content-Type': 'application/json',
  'X-API-KEY': '<your_api_key_here>'
}

# 4. 发出GET请求
response = requests.get(url, headers=headers, params=params)

# 5. 处理响应
if response.status_code == 200:
    data = response.json()
    print(json.dumps(data, indent=2))
else:
    print(f"请求失败,状态码为{response.status_code}")</code>

Description des paramètres importants

eventPriceVariationMin = '-10'

Cela signifie que vous recherchez une baisse de prix d'au moins 10 %.

eventPriceVariationMax = '0'

Définir cette valeur sur 0 garantit que vous n'incluez pas les propriétés qui ont connu des augmentations de prix ou des changements supérieurs à 0 %. Essentiellement, vous capturez un changement négatif ou nul.

? Conseil : Ajustez les valeurs min/max en fonction de votre stratégie. Par exemple, -5 et 5 incluraient des changements de prix de ±5 %.

Pièges potentiels et précautions

  1. Authentification : Assurez-vous toujours d'utiliser une clé API valide. Certaines API ont également des limites de débit ou des quotas d'utilisation.
  2. Gestion des erreurs : gérez les situations dans lesquelles l'API est en panne ou les paramètres ne sont pas valides.
  3. Validation des données : L'API peut renvoyer des données incomplètes pour certaines listes. Vérifiez toujours les champs manquants.
  4. Format de date : assurez-vous que vos fromDate et toDate sont dans un format reconnu par l'API (par exemple, AAAA-MM-JJ).
  5. Grands ensembles de données : si l'API renvoie des centaines ou des milliers de listes, une pagination peut être requise. Vérifiez si les paramètres de pagination tels que la page ou la limite existent dans le document API.

Résumé

Vous disposez désormais d'un script Python de base pour explorer les données immobilières, en vous concentrant sur les propriétés dont le prix a baissé. Cette méthode peut être très puissante si vous souhaitez investir dans l'immobilier, ou si vous souhaitez simplement suivre les tendances du marché.

Comme toujours, veuillez ajuster les paramètres à vos besoins spécifiques. Vous pouvez étendre ce script pour trier les résultats par prix, intégrer des analyses avancées et même intégrer des données dans un modèle de apprentissage automatique pour des informations plus approfondies.

Bonne chasse et puissiez-vous trouver des trésors cachés !


Lectures complémentaires

  • Python demande de la documentation
  • Comparaison des API de données immobilières
  • API Stream Estate
  • Points clés de l'API de données immobilières

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:RandomAffine dans PyTorchArticle suivant:RandomAffine dans PyTorch