Mapa gratuito de lançamentos imobiliários na planta
Foco em Mogi das Cruzes e no Alto Tietê, cobrindo também a Grande São Paulo e outras capitais.
Os dados vêm direto dos sites das próprias incorporadoras e são atualizados automaticamente todo dia. Cada empreendimento leva à página oficial, sem corretor nem intermediário.
Projeto acadêmico da Universidade de Mogi das Cruzes (UMC), submetido ao UMC Summit.
| 🗺️ Mapa e lista | Mais de 900 empreendimentos de 23 incorporadoras. Por padrão mostra só o que está na planta (breve lançamento, lançamento e em obras); os prontos aparecem com a opção "Prontos". |
| 🔎 Filtros | Cidade, tipo (apartamento, casa em condomínio, lote), etapa, construtora, dormitórios, área mínima e distância até a estação. |
| 🚆 Arredores | Estação de trem ou metrô em operação mais próxima (até 3 km) e escolas, saúde, mercados e parques a até 1 km. |
| 🆕 O que mudou | Lançamentos novos, mudanças de etapa e empreendimentos que saíram, comparando cada coleta com a do dia anterior. |
| 📋 Sobre os dados | Situação de cada fonte, data da última coleta, regras e limites, tudo à vista. |
| 📱 Celular | Layout próprio para telas pequenas e pode ser adicionado à tela inicial como um app. |
flowchart LR
A[GitHub Actions<br>todo dia] --> B[coletar.py]
B --> C[12 coletores<br>um por incorporadora]
C --> D[geo.py<br>localização]
D --> E[arredores.py<br>estação e serviços]
E --> F[fotos.py<br>miniaturas]
F --> G[(dados.json<br>mudancas.json<br>status.json)]
G --> H[GitHub Pages<br>site estático]
- Coleta: cada coletor lê as páginas públicas de uma incorporadora e extrai nome, etapa, endereço, dormitórios, área, entrega e foto.
- Localização: a coordenada da fonte é conferida no Nominatim. Se o ponto cai fora da cidade, o endereço é procurado de novo. O pino vai para o prédio de mesmo nome no OpenStreetMap quando ele existe. Sem posição confiável, o pino fica no bairro, com aviso de "localização aproximada".
- Arredores: estação e serviços próximos vêm do OpenStreetMap, pela API Overpass.
- Fotos: cada foto é baixada uma vez e vira uma miniatura WebP servida pelo próprio site.
- Publicação: o site é uma página estática (
index.html+ módulos emsite/js/) que lê odados.jsone desenha o mapa com Leaflet. Não há servidor nem banco de dados.
- ✅ Só lê o que o
robots.txtde cada site permite. Bloqueios nunca são contornados. - ✅ Identifica-se como
NaPlantaBot/0.1 (projeto academico UMC)e espera 1 segundo entre páginas (ou oCrawl-delaydo site, se for maior). - ✅ Guarda só informações públicas do empreendimento. Não coleta preços nem dados pessoais.
- ✅ Empreendimentos 100% vendidos ficam de fora.
- ✅ Se um site falha, responde vazio ou perde mais de 30% dos empreendimentos de um dia para o outro, os dados anteriores são mantidos. Uma queda que se repete por 3 coletas seguidas é aceita como real. Fonte parada há mais de um dia ganha aviso no card e na aba Actions.
| Incorporadora | Região principal |
|---|---|
| Helbor | Mogi das Cruzes, São Paulo e outras capitais |
| C.A.C Engenharia | Mogi das Cruzes |
| Integra Urbano | Mogi das Cruzes e Suzano |
| Sousa Araujo | Mogi das Cruzes e interior de SP |
| Damebe | Mogi das Cruzes |
| Cury | São Paulo e Rio de Janeiro |
| Tenda | Diversas capitais |
| EZTEC | São Paulo, Guarulhos, Osasco e ABC |
| Econ | São Paulo e Guarulhos |
| Metrocasa | São Paulo |
| Vibra Residencial | São Paulo |
| Árbore Engenharia | Suzano, Poá, Grande SP e interior |
| J.Bianchi / BRI | Mogi das Cruzes |
| GFR Empreendimentos | Loteamentos em Mogi das Cruzes, Campinas e interior |
| Scopel | Loteamentos em Mogi das Cruzes, Arujá, Itaquaquecetuba, Guarulhos e interior |
| Ribeira | Mogi das Cruzes |
| Lumiar | Mogi das Cruzes, Itaquaquecetuba, Suzano e Zona Leste de SP |
| Jeronimo da Veiga | Poá, Taboão da Serra e Grande Rio |
| Evo Life | Zona Leste de São Paulo |
| Lumy | São Paulo, Guarulhos, Cajamar e Jundiaí |
| Graal Engenharia | Zonas Leste e Norte de São Paulo |
| Longitude | São Paulo e interior de SP |
| Direcional | São Paulo, Campinas, Ribeirão Preto e outras capitais |
Incorporadoras que ficaram de fora
| Incorporadora | Motivo |
|---|---|
| MRV | O robots.txt proíbe a coleta das páginas de imóveis |
| Plano&Plano | O robots.txt proíbe a coleta das páginas de empreendimentos |
| Habras | O site bloqueia acessos automatizados |
| Cyrela | O site bloqueia acessos automatizados |
Cury, Sousa Araujo e J.Bianchi não respondem às coletas feitas pelos servidores do GitHub; o mapa mantém os dados da última coleta que funcionou e avisa a data no card. Para atualizá-las, rode a coleta num computador (veja abaixo).
Arquitetura · PRD · TRD · Fluxos · Backend · Design · Plano · Futuro e escala
Requer Python 3.12 ou mais novo.
pip install -r coleta/requirements.txt
python coleta/coletar.py
python coleta/paginas.py # opcional: páginas por empreendimento e sitemap
python -m http.server 8000 --directory siteDepois é só abrir http://localhost:8000. A primeira coleta demora mais, porque preenche os caches de localização e arredores e gera as miniaturas.
Estrutura do projeto
coleta/
coletar.py · paginas.py pontos de entrada (coleta diária; páginas e sitemap)
cache/ respostas do Nominatim e do Overpass
naplanta/
config.py caminhos, URL, fuso e identificação do robô
dominio/ regras puras: validação, etapas, mudanças, texto
fontes/ um adaptador por incorporadora + registro FONTES
infra/ rede (robots.txt), geo, arredores, fotos, repositório JSON
app/coleta_diaria.py caso de uso que orquestra a coleta
publicacao/paginas.py páginas por empreendimento e sitemap
site/
index.html · transparencia.html
js/main.js composição do app
js/nucleo/ filtros, formatação, situação (sem DOM)
js/ui/ mapa (Leaflet), lista, filtros, cabeçalho, novidades, boas-vindas
dados.json · mudancas.json · status.json · fotos/ gerados pela coleta
.github/workflows/coleta.yml coleta diária e publicação
Detalhes em docs/arquitetura.md.
Limites conhecidos
- A etapa da obra é a que a incorporadora informa no site dela.
- Alguns pinos são aproximados: ficam na rua ou no bairro quando nem a fonte nem o OpenStreetMap têm a posição do prédio. O card avisa quando o pino está no bairro.
- As distâncias até estações e serviços são em linha reta, não o caminho a pé.
Todas gratuitas e abertas: Python (httpx, BeautifulSoup, Pillow), Leaflet com Leaflet.markercluster, OpenStreetMap (mapa, Nominatim e Overpass), GitHub Actions e GitHub Pages.
© 2026 autores do NaPlanta. Todos os direitos reservados. O código está visível para fins acadêmicos e de transparência; uso, cópia ou redistribuição dependem de autorização dos autores.
Os dados de mapa são © colaboradores do OpenStreetMap (ODbL). Nomes, informações e fotos dos empreendimentos pertencem às respectivas incorporadoras.