# cromwell — Cromwell Management (site unités : cromwellmontreal.ca) - site: https://cromwellmontreal.ca/apartments-for-rent-montreal/ (WordPress + thème Houzez) - méthode: html - annonces: 12 → 12 - couverture après (sur 12 annonces): prix 100%, adresse 100%, dispo 100%, superficie 100%, commodités 100% - fixture: ok · test: ok ## Champs extraits - title, address, price_label (« Starting at $1,345/month »), beds/baths, superficie (« 334 Sq. ft » dans .item-amenities) : cartes liste `.item-listing-wrap`. - unit_type : « X 1/2 » du bloc Détails de la fiche (« 1 Bedroom (3 1/2) »), sinon nb de chambres (0.5 = Studio). - availability : étiquettes de la fiche (`.property-labels-wrap` : « Available Now, Promotion 1 Free Month ») + NOUVEAU repli sur « Property Status » du bloc Détails. - amenities : NOUVEAU — liste Features complète de la fiche (`.property-features-wrap li` : Balcony, Elevator, Heating, Hot Water, Laundry Room, Parking, Refrigerator, Security Cameras…) fusionnée aux items de la carte + « X Bathroom(s) » du bloc Détails. - sector : NOUVEAU — bloc Adresse de la fiche (« City/ Ville: Montreal, Plateau Mont-Royal ») en repli du parsing de titre/adresse. - description : bloc Description de la fiche ; images : uploads WP (variantes -NxN exclues). ## Champs indisponibles à la source - Animaux, meublé, date précise de disponibilité (seulement « Available Now » / « Rented »). - lat/lng : aucune coordonnée dans la page (la carte Houzez n'est pas configurée). - Inclusions précises au bail : « Heating », « Hot Water » listés comme features sans dire explicitement « inclus » (interprétés centralement comme inclusions — plausible ici). ## Fragilités - Thème Houzez : sélecteurs `.item-listing-wrap`, `.detail-wrap`, `.property-features-wrap`, `.property-labels-wrap` — stables tant que le thème ne change pas. - Le vrai site corporatif (cromwellmgt.ca) ne publie pas d'unités ; tout repose sur le site jumeau cromwellmontreal.ca (12 annonces seulement, souvent « starting at » par immeuble). - Pagination suivie via a[rel=next] ; une seule page actuellement. - Villes défusionnées (Westmount/Hampstead) détectées par heuristique adresse/titre. ## Améliorations apportées - Fiches détail migrées vers le cache BD `self.detail()` (clé = sha1 titre|prix|adresse| amenities de la carte) : les re-syncs ne revisitent plus chaque fiche. - Amenities enrichies par la liste Features complète de la fiche (avant : 3-6 items de carte ; après : jusqu'à ~16 items → inclusions.heating/hot_water, elevator, laundry, parking, ac… dérivés centralement). - « X Bathroom(s) » et repli « Property Status » extraits du bloc Détails. - sector depuis le bloc Adresse de la fiche (ex. « Plateau Mont-Royal »). ## Échantillon avant/après Renovated Plateau Studio Apartment - avant : 1345.0 | Studio | Available Now, Promotion 1 Free Month | now | 334 pi² | details={"appliances":{"fridge":true,"stove":true,"dishwasher":true,"washer_dryer":true},"laundry":true,"parking":{"available":true},"price_from":true} | amenities=[334 Sq. ft, …carte] - après : 1345.0 | Studio | Available Now, Promotion 1 Free Month | now | 334 pi² | details={"inclusions":{"heating":true,"hot_water":true},"appliances":{…},"elevator":true,"balcony":true,"laundry":true,"parking":{…},"price_from":true} | amenities=[334 Sq. ft, 1 Bathroom(s), Balcony, City Views, Cooking Stove, Dishwasher, Elevator, Fully Renovated, Heating, Hot Water, Laundry Room, Lobby, Microwave, Parking, Refrigerator, Security Cameras] 1 bedroom Apartment on Mount-Royal - avant : 1525.0 | 3½ | Available Now, Promotion 1 Free Month | now | 700 pi² | details={"appliances":{…},"pool":true,"gym":true,"price_from":true} - après : 1525.0 | 3½ | idem | now | 700 pi² | details={"inclusions":{"heating":true,"hot_water":true},"appliances":{…},"ac":true,"elevator":true,"balcony":true,"pool":true,"gym":true,…} | amenities enrichies (Features fiche)