O blog da AWS

Conheça como a EEmovel utiliza inteligência artificial para acelerar seu processo de web scraping.

Por Gabriel Marchelli, arquiteto de soluções Startups na AWS; 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 esse obstáculo, 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 PlaywrightScrapyLambda 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 em conjunto com a 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%.

Sobre os Autores

Ricardo Johnny é Arquiteto de Nuvem na EEmovel, com formação em Ciência da Computação pela Anhanguera, com mais de 20 anos de experiencia em algumas áreas de tecnologia, como Analise de Sistemas, redes de computadores e engenharia de dados focado em segurança. Atualmente, também é responsável por toda a área de Segurança da Informação da EEmovel, garantindo que as operações estejam seguras e em conformidade com as melhores práticas.
Matheus Gonçalves é um Engenheiro de Dados com mais de 5 anos de experiência em CloudOps, DataOps e DevOps. Possue forte expertise em arquitetura e implementação de soluções em nuvem, além de modelagem e manutenção de bancos de dados SQL e NoSQL. Sua atuação abrange o processamento de dados em lote e streaming, automação de processos e criação de pipelines escaláveis. É Bacharel em Sistemas de Informação e tem profundo conhecimento em AWS, com foco em Python.

Gabriel Marchelli é arquiteto de soluções Startups na AWS, com formação em Administração de Empresas pela Universidade de São Paulo e MBA em Gestão de Arquitetura e Infraestrutura pela FIAP. Em quase 10 anos de experiência no mercado de Cloud Computing e de implantação de software, apoiou empresas de diferentes segmentos no mapeamento das necessidades de TI e na implantação de novas tecnologias. Entusiasta da transformação digital, é participante recorrente em eventos de tecnologia e painéis de discussão.