SPB Git

spb/lou-ka Public

Lou·Ka — tous les logements à louer du Québec, un seul endroit.

HTML 99.7%
4.8 KB · 38 lines markdown
Rendered Raw Blame History
1# brigil — Brigil (Gatineau / Outaouais)2- site: https://www.brigil.com/searchlisting?province=Quebec (portail Yardi RentCafe)3- méthode: **Firecrawl** (`get_rendered` maison, attente de rendu) — site derrière **Cloudflare** ; fiches + plans via `self.detail()` (cache BD) et plafond de rendus4- annonces: 25 propriétés québécoises après 2 syncs (12 à la 1re sync, la couverture s'étend grâce au cache) sur 52 fiches candidates ; les propriétés d'Ottawa/Ontario sont écartées5- couverture (sur 25 annonces): adresse 100 %, ville 100 %, type d'unité 100 %, description 96 %, images 100 %, prix 40 % (10/25), superficie 36 %6- fixture: ok (27 requêtes Firecrawl, 12 annonces) · test: ok (2 verts)78## Cloudflare / Firecrawl (le point technique)9- `curl`/`requests` avec le UA de base.py : **403 « Just a moment… »** sur toutes les pages HTML (y compris `/sitemap.xml`) ; seul `robots.txt` répond 200. Le contenu est en outre rendu côté client par RentCafe.10- Firecrawl passe **systématiquement** (testé sur l'accueil, la recherche, 3 fiches propriété et les pages `/floorplans`) : `POST api.firecrawl.dev/v1/scrape` avec `waitFor` 8–15 s. Le connecteur est donc **connectable**, patron identique à `realstar.py`.11- L'appel Firecrawl passe par `self.session.post` afin que l'enregistreur de fixtures capture le HTML rendu (rejeu hors-ligne des tests, aucune clé dans le dépôt).12- `robots.txt` n'interdit aucune page d'annonces (`/refs/`, `/runtimes/`, `/js/`, `/lib/`, `/dashboard/` seulement).1314## Champs extraits15- **Cartes `li.property-box`** : nom (`data-property`), gamme (`Apartment, Aura`), fourchette de chambres (`2-3 Beds`), fourchette de prix (`$1,510.00 - $2,285.00`), vignette RentCafe, URL de la fiche → `external_id` = slug de l'URL (`jardins-mcconnell`, `le-columbia`).16- **La ville n'est PAS sur les cartes** et le portail ne filtre pas côté serveur (`?city=Gatineau` renvoie les 54 mêmes cartes) : elle est lue sur la fiche, dans l'adresse structurée `[itemprop=address]` (« 8 rue Arthur-Graveline, Gatineau, QC J9J 2A5 »). Toute fiche dont l'adresse ne nomme pas une ville québécoise desservie (Gatineau, Chelsea, Cantley, Val-des-Monts, Thurso, La Pêche) est **écartée** — pas d'annonce sans ville confirmée.17- **Plans** (`div[id^='fp-container-']`, sur la fiche ou sur `/floorplans`) : nom (« 2 Bed 2 Bath », « Penthouse »), chambres, superficie (borne basse de la fourchette), prix « Starting at $1,732.00 ». « Call for details » = prix non publié → `None`.18- Prix final = plus bas prix de plan quand il existe, sinon la fourchette de la carte ; libellé « À partir de … » seulement quand la source l'annonce ainsi.19- Type d'unité = borne basse de la fourchette de chambres (`Studio-0 Beds` → Studio, `4-4 Beds` → 6½+).20- Description = premiers paragraphes de la fiche ; `details.contact.phone` = numéro du bureau de location ; images = photos `resource.rentcafe.com`.2122## Champs indisponibles à la source23- **Disponibilité** : le rendu RentCafe de Brigil n'expose ni date ni compteur d'unités par plan (contrairement à Realstar) → `availability` vide, jamais supposée.24- **Secteur** (Hull/Aylmer/Buckingham) : renseigné uniquement quand l'adresse le nomme ; le déduire du code postal (J8X = Hull, J9J = Aylmer…) serait une inférence externe → laissé vide (0/25 aujourd'hui).25- Superficie/prix des immeubles de la gamme « Comfort » (petits immeubles de studios) : le portail affiche « Call for pricing ».26- Commodités structurées, animaux, meublé : non exposés dans le rendu.2728## Fragilités29- **Coût/temps** : 1 rendu pour la recherche + 1 à 2 par propriété. Plafond `max_renders = 26` par sync (≈ 3,5–5 min) ; le cache BD (clé = contenu de la carte) libère le budget aux propriétés non encore visitées, si bien que la couverture croît d'une sync à l'autre (12 → 25 → …) puis se stabilise sur tout le portefeuille QC.30- Deux fiches sont explicitement ontariennes par l'URL (`/apartments/on/ottawa/…`) : écartées sans dépenser de rendu.31- Dépendance à Firecrawl : sans `FIRECRAWL_API_KEY`, la sync échoue proprement (erreur enregistrée, autres sources intactes).32- Le portail est en anglais dans le rendu (« Beds », « Starting at ») : les libellés sont normalisés côté Lou-Ka, mais un passage du site au français changerait les motifs de plans.3334## Échantillon35- `brigil:jardins-mcconnell | Jardins McConnell | 8 rue Arthur-Graveline, Gatineau, QC J9J 2A5 | 4½ | À partir de 1 510 $/mois | 1 029 pi² | 20 photos | 819… | Plans : 2 Bed 1 Bath (1 029 pi²) : 1 510 $/mois ; 3 Bed 1 Bath : 1 740 $/mois ; Penthouse 2 Bed…`36- `brigil:le-columbia | Le Columbia | 388 Boulevard Saint-Joseph, Gatineau, QC J8Y 0A8 | 3½ | À partir de 1 732 $/mois | 671 pi²`37- `brigil:35-rue-pr-vost | 35 rue Prévost | Gatineau | Studio | prix non publié (« Call for pricing »)`38