Por Gabriel Marchelli, arquiteto de soluções Startups na AWS; Bruno Vilardi Arquiteto de Soluções na e-Core e AWS Community Builder; Matheus Gonçalves, engenheiro de Dados e Ricardo Johnny, Arquiteto de Nuvem na EEmovel.
A EEmovel é uma startup de tecnologia fundada em 2014 em Cascavel – PR, ofertando para seus clientes soluções com o uso de dados do mercado imobiliário. Suas ferramentas visam apoiar a tomada de decisão de diferentes segmentos de negocio como imobiliárias, instituições financeiras, grandes varejistas, construtoras, incorporadoras e empresas do agronegócio.
A startup destaca-se no atendimento ao mercado imobiliário urbano em que oferece uma plataforma SaaS chamada EEmovel Brokers. Com uma interface leve e intuitiva, a plataforma permite que corretores e imobiliárias localizem imóveis para captação, realizem avaliações e gerenciem sua carteira de ativos. A startup utilizas grandes bases de dados, com mais de 30 milhões de imóveis ativos e atualizadas constantemente.
Outro foco de atuação é no Agronegócio com a EEmovel Agro, uma plataforma de Inteligência de Mercado com mais de 7,5 milhões de propriedades rurais mapeadas em todo o Brasil. A plataforma fornece informações detalhadas sobre culturas agrícolas, histórico de plantio, dados técnicos do solo, altitude, declividade, e muito mais. Alem disso, para os clientes do Agronegócio são disponibilizados dados sobre os proprietários e possíveis arrendatários das propriedades.
A empresa ainda oferece avalições de imóveis rurais e urbanos e ferramentas para determinar o posicionamento ideal para novos negócios, especialmente no ramo varejista.
Você pode consultar o blog da EEmovel nesse link.
Desafio
A EEmovel realiza um trabalho extenso de web scraping em uma grande variedade de sites de imobiliárias, com o objetivo de obter informações sempre atualizadas sobre imóveis (preço, área, localização e outras características relevantes). A empresa coleta dados de aproximadamente 11 mil sites de imobiliárias brasileiras, o que resulta em um volume de 20 milhões de anúncios por dia, abrangendo cerca de 16% do mercado imobiliário brasileiro.
Apesar do grande alcance e da relevância das informações coletadas, o processo atual enfrenta desafios significativos. A metodologia utilizada para o web scraping é predominantemente manual e requer uma manutenção contínua dos scripts considerando que alterações frequentes nos sites das imobiliárias exigem adaptações constantes. Isso torna o processo não apenas demorado, mas também caro e propenso a falhas.
Um dos maiores problemas enfrentados pela EEmovel é a alta taxa de falhas nos scripts. Em média, 100 scripts quebram por dia, um volume que supera a capacidade diária da equipe responsável por corrigir essas falhas. Esse cenário é ainda mais complexo quando se lida com os sites das maiores imobiliárias, que geralmente possuem designs personalizados e estruturas próprias, o que dificulta a automação e exige a criação de códigos específicos para cada um. Em média um colaborador leva em torno de 8h para corrigir um script quebrado, levando em consideração a identificação o erro, fazer a correção e validar o código.
Embora a empresa tenha tido sucesso na automação de processos para sites mais simples, os sites mais complexos continuam a demandar a participação de diversos colaboradores, aumentando consideravelmente os custos operacionais. A manutenção dessas automações personalizadas, em conjunto com a constante necessidade de adaptação, torna o processo de coleta de dados altamente desafiador e financeiramente oneroso.
Esse cenário ressalta a necessidade de melhorias significativas no processo de web scraping, seja por meio da criação de soluções mais robustas e automatizadas, ou pela adoção de novas tecnologias que possam reduzir a necessidade de intervenção humana, aumentando a eficiência e a escalabilidade da operação.
Solução
Para superar este obstáculo, a e-Core, uma consultoria especializada AWS, foi engajada ao lado da equipe AWS e do time da EEmovel para construir a solução. Foi desenvolvida uma arquitetura automatizada e inteligente baseada em tecnologias AWS e ferramentas especializadas de scraping, como o Playwright e o Scrapy. Essa solução tem como objetivo otimizar o processo de coleta de dados e reduzir a manutenção manual, utilizando uma combinação de serviços da AWS como o AWS Lambda (para a execução de funções), Amazon Bedrock (serviço de IA generativa totalmente gerenciado que oferece várias opções de modelos de base (FMs)), e serviços auxiliares como AWS Step Functions (serviço que fornece orquestração sem servidor para aplicações modernas). e o Amazon Simple Storage Service (Amazon S3) para o armazenamento de objetos.
Destaca-se na arquitetura a utilização do Amazon Bedrock (utilizando o modelo Claude 3.5 Sonnet da Anthropic) para acelerar o processo de criação e correção de códigos de Spider em Python. O Grandes Modelo de Linguagem (LLM) recebe um prompt formado em uma etapa anterior com alguns modelos de códigos já definidos. Após a criação ou correção do código pelo LLM, o código é enviado para a validação humana que executa as correções que julgar necessárias e atualiza o código em produção. Em resumo o Amazon Bedrock é capaz de adaptar-se às mudanças nos sites, aprendendo novos padrões e ajustando a lógica de scraping conforme necessário. Isso reduz o número de scripts quebrados e aumenta a eficiência geral do processo.
Além disso, o uso de funções Lambda para executar essas tarefas de forma serverless garante que o sistema possa escalar automaticamente para lidar com a quantidade massiva de dados, processando até 15 milhões de anúncios por dia, conforme necessário. As funções Lambda são orquestradas na arquitetura com a utilização do Step Functions.
A arquitetura apresentada no diagrama começa com a captura de requisições diretamente dos sites das imobiliárias, simulando a paginação com Playwright. Essa simulação é crucial, pois muitos sites modernos utilizam carregamento dinâmico de conteúdo, o que exige interação com JavaScript para obter as informações completas.
Após capturar os requests, a solução segue por dois caminhos principais, dependendo se o site é estático ou dinâmico:
Para os sites estáticos, é possível aprender a estrutura de paginação diretamente do código-fonte HTML. Uma vez identificado o padrão, é feita a coleta de informações diretamente, simplificando o processo de extração.
Quando o site não é estático, o sistema utiliza requisições capturadas para aprender a paginação. Em seguida, se o site retorna HTML, o código dessa página é interpretado para identificar as informações dos imóveis. Caso contrário, o retorno se dá via JSON, onde o sistema extrai os detalhes necessários.
Ao final, independentemente do caminho, o resultado é a geração automática de spiders (robôs de scraping) utilizando a ferramenta Scrapy em combinação com Python. Essa abordagem gera códigos personalizados para cada site, eliminando grande parte da necessidade de intervenção manual.
Com essa nova abordagem, a EEmovel conseguiu reduzir significativamente o esforço manual e o custo associado à manutenção de scripts. Além disso, o tempo de reação a mudanças nos sites das imobiliárias diminui, uma vez que a arquitetura automatizada consegue detectar e corrigir problemas de scraping com muito mais agilidade.
A capacidade de escalar o processo para lidar com a diversidade de sites, sem a necessidade de ajustar manualmente cada script, garante uma operação mais fluida e eficiente. Em última análise, isso permite que a EEmovel concentre seus esforços na análise dos dados coletados e no desenvolvimento de insights valiosos, em vez de gastar recursos em tarefas repetitivas de manutenção de scripts.
A transformação no processo de scraping da EEmovel, utilizando tecnologias de ponta como Playwright, Scrapy, Lambda e Amazon Bedrock, trouxe um novo nível de automação e eficiência à empresa. Com a capacidade de gerar spiders adaptáveis e aprender com as mudanças dos sites automaticamente, o time de desenvolvimento pode focar em atividades de maior valor, enquanto o sistema se ajusta em tempo real, garantindo a coleta de dados precisa e atualizada.
Resultado
Com a utilização da nova arquitetura construída e implementada com o apoio da e-Core e AWS, a EEmovel conseguiu atingir resultados surpreendentes.
A arquitetura possibilita a correção e a criação de múltiplos scripts em paralelo, agilizando a adaptação às mudanças nos sites. Anteriormente, para expandir para uma nova cidade com 200 sites de imobiliárias, uma equipe de 5 pessoas desenvolvendo 5 scripts por dia precisava de cerca de 40 dias para concluir os 200 scripts. Com a solução implementada, o mesmo time agora consegue desenvolver 80 scripts por dia, necessitando apenas de 2 dias e meio para concluir a mesma quantidade. Isso resultou em uma expansão muito mais rápida, mantendo a qualidade das entregas.
Em termos de custo operacional, uma expansão para uma cidade com 200 sites, que antes custava $3.600, agora, com a nova arquitetura implementada, pode ser realizada por apenas $800.
Essa solução também reduziu drasticamente o tempo de correção de scripts, que passou de 8 horas para apenas 30 minutos com o uso do Amazon Bedrock. O processo foi otimizado para gerar novos códigos em 10 minutos e realizar a validação humana em 20 minutos, permitindo que um profissional corrija até 16 scripts por dia. O custo por script caiu de $18 para $4 dólares, representando uma economia de 78%.