Comparação das melhores APIs de extração de dados do Zillow: análise de desempenho
Avaliamos os cinco melhores provedores de web scraping no Zillow, um dos principais sites de imóveis , executando mais de 1.250 solicitações de scraping em todos os provedores. Cada provedor recebeu um conjunto idêntico de URLs de anúncios de imóveis e foi avaliado com base no tempo de conclusão, taxa de sucesso e número de campos de dados estruturados retornados por anúncio.
benchmark de raspagem de dados do Zillow
Analisamos também o tempo de conclusão especificamente para tarefas em que todos os provedores foram bem-sucedidos. Os resultados foram quase idênticos aos tempos de conclusão gerais, indicando que as solicitações com falha não aumentaram significativamente o tempo médio de conclusão para nenhum provedor.
Você pode ler nossa seção sobre metodologia de avaliação comparativa para obter mais detalhes sobre o processo de teste.
Que dados você pode extrair do Zillow?
Como o provedor Apify foi o único que retornou uma saída JSON estruturada, ele foi o único com campos de metadados mensuráveis. O provedor Apify retornou 185 campos de metadados para o Zillow. Os demais provedores retornaram HTML renderizado, que foi analisado localmente usando seletores CSS e, portanto, não produziu contagens de metadados comparáveis.
Apify campos de metadados disponíveis para Zillow
Resultados do teste de desempenho de raspagem de dados do Zillow
O conjunto de dados Oxylabs apresentou a menor taxa de sucesso nesta comparação, com 89%, e também registrou o maior tempo médio de conclusão, em torno de 59 segundos. Ele utilizou uma fonte de dados dedicada do Zillow, mas isso não se traduziu em vantagem de velocidade ou confiabilidade neste conjunto de dados específico.
O provedor Decodo apresentou uma taxa de sucesso de 97%, a segunda maior, atrás apenas do Apify. No entanto, seu tempo de conclusão foi consideravelmente maior, em torno de 51 segundos, o que o coloca entre os provedores mais lentos. Ele alcançou esse resultado usando uma configuração de coleta de dados genérica, sem nenhuma configuração específica do Zillow.
O provedor Apify alcançou uma taxa de sucesso de 100% no Zillow, com um tempo de conclusão de aproximadamente 17 segundos. Foi o único provedor a retornar uma saída JSON estruturada, o que também o tornou o único com campos de metadados mensuráveis, com uma média de 185 pontos de dados por anúncio.
O provedor Nimble foi o mais rápido no teste comparativo, concluindo as solicitações em aproximadamente 12 segundos, em média. Sua taxa de sucesso foi de 92%, o que o manteve na metade superior da comparação. A combinação de velocidade e confiabilidade fez dele um dos resultados mais equilibrados neste domínio.
O teste Zyte alcançou uma taxa de sucesso de 92% com um tempo de conclusão de aproximadamente 46 segundos. Sua taxa de sucesso ficou em um patamar semelhante à do teste Nimble, porém com um tempo de execução consideravelmente menor. O resultado foi consistente, mas sem grandes destaques.
Metodologia de referência
Testamos cinco provedores de web scraping (Apify, Decodo, Oxylabs, Nimble, Zyte) no zillow.com.
Conjunto de dados
Preparamos 250 URLs de páginas de produtos do Zillow. As páginas de produtos são anúncios individuais de imóveis com detalhes como endereço, preço, número de quartos, banheiros, metragem quadrada e histórico do imóvel.
Todos os URLs foram verificados quanto à acessibilidade antes do teste de desempenho. Os URLs seguiram o formato padrão da página de detalhes do Zillow (/homedetails/…/zpid/).
Configuração compartilhada
Todos os provedores receberam URLs idênticos do mesmo conjunto de dados e foram testados sob as mesmas condições:
- Execução sequencial: uma solicitação por vez, sem solicitações paralelas.
- Intervalo entre solicitações: 2 segundos
- Tratamento de limite de taxa: espera de 30 segundos com até 3 tentativas no HTTP 429
- Tempo limite para envio: 300 segundos
- Tempo limite de execução: 600 segundos
- Cada URL foi testada uma vez por provedor.
Configurações do provedor
Apify
O ator Apify utilizou o ator maxcopell/zillow-detail-scraper, que retorna JSON estruturado com os campos analisados. Não foi necessário analisar seletores CSS. As execuções do ator foram verificadas em intervalos de 1 segundo até que o status atingisse SUCESSO.
Decodo
Decodo usou a API Universal Scraper (alvo: universal, headless: html), que retorna HTML renderizado em JavaScript. A resposta foi analisada localmente com seletores CSS. Todas as requisições incluíram um cabeçalho User-Agent para desktop.
Oxylabs
Oxylabs usou a API em tempo real com source: zillow e render: html, que retorna HTML renderizado em JavaScript. A resposta foi analisada localmente com seletores CSS.
Nimbleway
Nimble usou a API Extract com render: true e driver: vx10 (navegador headless stealth). A resposta foi analisada localmente com seletores CSS. Nenhuma configuração específica de domínio foi aplicada.
Zyte
Zyte usou a API Extract com browserHtml: true, que retorna HTML renderizado em JavaScript por meio de um navegador Chromium sem interface gráfica. A resposta foi analisada localmente com seletores CSS. Nenhuma configuração específica de domínio foi aplicada.
Validação
verificação de status HTTP
Antes da validação, o código de resposta HTTP do provedor é verificado. Respostas com códigos de status entre 200 e 399 e 404 são consideradas envios bem-sucedidos e prosseguem para a fase de validação. Qualquer outro código de status (400, 403, 500, 550, etc.) é tratado como um envio falho, e o teste é imediatamente marcado como reprovado sem entrar na fase de validação.
Regras de validação
Os testes que passam na verificação de status HTTP são validados na seguinte ordem:
- Detecção de erro 404 : Se o conteúdo da página ou o erro da API indicar que a página não existe mais ("página não encontrada", "não existe", "página inativa"), o teste é considerado válido. O provedor identificou corretamente uma página indisponível.
- Extração de dados (API JSON) : Para provedores que retornam JSON estruturado, pelo menos um campo de dados deve estar presente e não vazio, com um tipo válido dependendo do campo (string ou inteiro). Os campos verificados incluem endereço, preço, quartos, banheiros e metragem quadrada.
- Extração de dados (HTML) : Para provedores que retornam HTML, a resposta é analisada com seletores CSS específicos do Zillow. Se pelo menos um seletor corresponder e retornar um valor não vazio, o teste é aprovado.
- Indicador de página (somente HTML): Se nenhum item de dados foi extraído, mas pelo menos um dos seletores CSS predefinidos para o Zillow correspondeu a um elemento na página, o teste é marcado como válido. Isso confirma que a página foi renderizada e carregada, mesmo que nenhum item de dados estruturados tenha sido encontrado nos contêineres esperados.
- Se nenhuma das condições acima for atendida, o teste falha. Os motivos comuns para a falha incluem páginas de captcha/desafio de bot, renderização insuficiente de JavaScript, erros de conexão com proxy e erros do rastreador.
Métricas
Taxa de sucesso da validação : A porcentagem de URLs testadas em que o provedor retornou dados utilizáveis, calculada como o número de testes bem-sucedidos dividido pelo número total de testes.
Tempo de conclusão : O tempo total desde o envio da solicitação de coleta de dados até o recebimento dos resultados validados, medido em segundos. Para provedores assíncronos, o status de conclusão da tarefa foi verificado em intervalos de 1 segundo. Apresentado como a média aritmética de todas as execuções em um grupo.
Metadados disponíveis : O número de nomes de campos exclusivos retornados pelo provedor em todos os itens de uma resposta. Aplicável somente a respostas da API JSON.
Perguntas frequentes
APIs estruturadas retornam dados validados, como preço, endereço, número de quartos e metragem quadrada, em formatos consistentes. Ao usar provedores baseados em HTML, verifique os dados extraídos comparando-os com anúncios conhecidos e procure por campos ausentes causados por renderização dinâmica da página ou redirecionamentos anti-bot.
Sim, a maioria dos provedores de extração de dados oferece suporte tanto para anúncios de aluguel quanto para anúncios de venda no Zillow. A estrutura da URL difere entre os dois, portanto, seu conjunto de dados deve incluir o tipo de anúncio correto. Alguns provedores usam configurações ou IDs de conjunto de dados separados para aluguéis e vendas.
Para URLs de produtos (listagens individuais), a paginação não é necessária, pois cada URL retorna uma única propriedade. Para URLs de pesquisa que retornam múltiplos resultados, os provedores lidam com a paginação de forma diferente. Algumas APIs estruturadas aceitam um parâmetro de limite para controlar o número de resultados por solicitação, enquanto provedores baseados em HTML retornam apenas as listagens exibidas na primeira página.
O Zillow utiliza CAPTCHAs, bloqueio de IP e renderização dinâmica em JavaScript para impedir o acesso automatizado. Falhas comuns incluem respostas vazias de solicitações bloqueadas, dados incompletos de páginas que não foram totalmente renderizadas e anúncios desatualizados que retornam erro 404. O uso de provedores com APIs dedicadas ao Zillow ou renderização em modo headless reduz esses problemas.
Os dados extraídos do Zillow podem ser usados para acompanhar tendências de preços por bairro, comparar preços de anúncios com estimativas do Zillow (Zestimates), monitorar o tempo de permanência no mercado, analisar o preço por metro quadrado em diferentes CEPs e identificar imóveis subvalorizados. APIs estruturadas que retornam campos como histórico de preços e avaliações fiscais fornecem dados mais detalhados para análises de investimento.
Seja o primeiro a comentar
Seu endereço de e-mail não será publicado. Todos os campos são obrigatórios.