Fonte Caixa (CSV) — especificação verificada
Fonte primária de dados. Decisão em ADR-0002.
Onde baixar
- Página:
https://venda-imoveis.caixa.gov.br/sistema/download-lista.asp(seleciona a UF). - URL direta do arquivo (verificada, responde
200):https://venda-imoveis.caixa.gov.br/listaweb/Lista_imoveis_{UF}.csv(ex.:..._SP.csv,..._RJ.csv; existe também..._Geral.csvpara o Brasil todo).
Formato do arquivo (verificado)
- Encoding:
latin1/ ISO-8859-1 (atenção ao converter para UTF-8). - Separador:
;(ponto e vírgula). - As 2 primeiras linhas não são dados: uma linha de título ("Lista de Imóveis da Caixa; Data de geração; dd/mm/aaaa") e uma linha em branco. Pule-as e use a 3ª como cabeçalho.
- Valores em formato brasileiro: preço
501.000,00, desconto0.00; campos com espaços sobrando (fazertrim).
Colunas
N° do imóvel | UF | Cidade | Bairro | Endereço | Preço | Valor de avaliação |
Desconto | Financiamento | Descrição | Modalidade de venda | Link de acesso- N° do imóvel: chave natural; aparece no link
detalhe-imovel.asp?hdnimovel={n}→ usada para deduplicação (RN-01) e para o coletor de detalhe. - Descrição: texto semiestruturado (tipo + áreas total/privativa/terreno) → parsear para os filtros.
Exemplo (linha real, resumida)
1444408501866 ;SP ;ADAMANTINA ;VILA JOAQUINA ;ALAMEDA PADRE ANCHIETA, N. 1159, LT 05 QD 16 ;
501.000,00;501.000,00;0.00;Não;Casa, 0.00 de área total, 171.43 de área privativa, 384.00 de área
do terreno.;Leilão SFI - Edital único;https://venda-imoveis.caixa.gov.br/sistema/detalhe-imovel.asp?hdnimovel=1444408501866Regras de parsing (para o coletor)
- Baixar como bytes; decodificar com
latin1. - Descartar as 2 primeiras linhas; ler a 3ª como cabeçalho.
split(';'),trimem cada campo.- Converter preço/avaliação (
.milhar,,decimal) paranumeric. - Extrair tipo/áreas da Descrição.
- Guardar a linha bruta em
coleta_brutaantes de normalizar. - Conciliar ausências: comparar o conjunto de
codigodo snapshot atual com os imóveisdisponivelno banco. Os que sumiram não são apagados — entram no fluxo de ciclo de vida (venda/remoção com período de carência). Ver RN-09.
Ver implementação sugerida em Collector (Python).