Quando um projeto precisa de dados da web, a primeira bifurcação do caminho é simples de enunciar: usar a API oficial da fonte ou coletar os dados de suas páginas. Ambas são formas legítimas de obter dados, e equipes costumam defender uma ou outra por princípio. Na prática, a resposta certa depende do que a API realmente oferece, do que as páginas mostram e do que o projeto precisa.
Este guia compara as duas opções nos fatores que decidem projetos reais, explica onde cada uma se destaca e aborda o caminho intermediário comum de combiná-las, incluindo o uso de uma web scraping API que transforma páginas em dados estruturados de forma semelhante a uma API oficial.
A versão resumida
| Fator | API oficial | Web scraping |
|---|---|---|
| Dados disponíveis | Apenas o que o provedor escolhe expor | Qualquer coisa mostrada em páginas públicas |
| Formato | Estruturado (geralmente JSON), documentado | HTML que precisa ser analisado ou extraído |
| Estabilidade | Versionado; mudanças são anunciadas | Quebra quando o layout da página muda |
| Limites | Limites de taxa, cotas, às vezes planos pagos | Sua própria capacidade, a tolerância do site e seus termos |
| Termos | Uma licença clara que diz o que você pode fazer | Depende dos termos do site e da lei |
| Cobertura | Um provedor por API | Qualquer site, qualquer mercado, o mesmo método |
| O que você vê | O modelo de dados do provedor | O que um visitante em determinado local vê |
Se uma API oficial fornece os campos de que você precisa, no volume que você precisa, sob termos que permitem seu uso, comece por ela. O scraping ganha seu lugar quando uma dessas três condições falha.
Quando uma API oficial é a melhor escolha
- Os dados de que você precisa estão nela. Muitas APIs são generosas: dados de catálogo, perfis públicos, registros financeiros, conjuntos de dados governamentais abertos. Nosso teste sobre quando você não precisa de um proxy residencial constatou que toda API pública que testamos funcionou de forma confiável sem nenhum proxy.
- Você precisa mais de estabilidade do que de amplitude. Uma API versionada com avisos de mudança exige muito menos manutenção do que um parser que acompanha o layout de uma página.
- A licença importa. Se você vai publicar, revender ou construir um produto com os dados, os termos de uma API dizem exatamente o que é permitido. Com dados coletados por scraping, você precisa descobrir isso por conta própria.
- Você precisa de dados que não estão em nenhuma página. Algumas APIs expõem histórico, identificadores ou exportações em massa que nenhuma página web mostra.
Quando web scraping é a melhor escolha
- Não existe API, o que ainda é o caso para a maior parte da web: a maioria dos varejistas, negócios locais, sites de notícias e diretórios não tem API pública de dados.
- A API deixa de fora o que você precisa. As APIs frequentemente omitem campos que estão na página: promoções atuais, mensagens de estoque, avaliações, o preço exato mostrado a um comprador.
- Você precisa do que os usuários realmente veem. Preços, classificações, anúncios e disponibilidade costumam variar por local, dispositivo e idioma. Uma API fornece os dados canônicos do provedor; a página fornece a experiência em determinado mercado. Coletar essa visão geralmente significa requisitar páginas de dentro do mercado, que é onde entram os proxies residenciais.
- Você precisa de muitas fontes da mesma forma. Uma única configuração de scraping cobre uma centena de varejistas; uma centena de APIs significa uma centena de integrações, chaves e esquemas de limite de taxa, se é que existem.
- Os limites da API não se encaixam. Cotas, preços ou processos de aprovação podem tornar uma API impraticável no volume de que você precisa.
Os caminhos intermediários
A escolha raramente é tudo ou nada.
Use ambos. Um padrão comum é usar a API para o núcleo estável (identificadores de produto, estrutura de catálogo) e scraping para o que a API não tem (preços ao vivo, promoções, disponibilidade local). Cada um faz o que faz de melhor.
Use a própria API da página. Muitos sites modernos carregam seu conteúdo a partir de endpoints JSON internos. Quando é apropriado usá-los, eles combinam a cobertura do scraping com o formato limpo de uma API. Nosso estudo sobre encontrar a API por trás da página mostra com que frequência esses dados estão lá e o que verificar antes de depender deles.
Use dados estruturados já presentes na página. Muitas páginas incorporam JSON-LD para mecanismos de busca: nomes de produtos, preços, avaliações, horários de funcionamento. Lê-los é muito mais robusto do que analisar o layout visível. Veja extraindo JSON-LD em vez de analisar HTML.
Use uma web scraping API. Uma web scraping API recebe uma URL e devolve a página, ou campos extraídos como JSON, cuidando de proxies, navegadores e novas tentativas. Para o seu código, ela se comporta como uma API oficial: uma requisição entra, dados estruturados saem. Ela não substitui a API própria da fonte quando esta se encaixa, mas remove a maior parte do trabalho de manutenção do scraping. Nosso guia para iniciantes sobre como usar uma web scraping API percorre o processo, e nosso guia de construir versus comprar aborda quando ainda faz sentido manter sua própria infraestrutura de scraping.
Como decidir, passo a passo
- Liste os campos de que você precisa e, para cada um, anote onde ele aparece: em uma API, na página, ou em ambas.
- Verifique os termos e limites da API em relação ao seu uso e volume.
- Verifique a visão da página. O que você precisa varia por local ou dispositivo? Se sim, a API pode não mostrar isso.
- Conte as fontes. Uma ou duas fontes com boas APIs favorecem as APIs; muitas fontes favorecem uma abordagem de scraping.
- Estime a manutenção. Uma integração de API é, em sua maior parte, construída uma vez; um scraper precisa de monitoramento e ajustes ocasionais à medida que as páginas mudam.
- Escolha por campo, não por projeto. É normal obter alguns campos de uma API e outros de páginas.
Responsabilidades em ambos os caminhos
Usar uma API significa seguir seus termos: cotas, atribuição, usos permitidos. Coletar de páginas significa seguir os termos do site onde eles se aplicam a você, respeitar o robots.txt e os limites de taxa, ficar longe de conteúdo atrás de login e tratar quaisquer dados pessoais conforme a lei aplicável. Nenhum dos dois caminhos está livre de obrigações; elas apenas estão escritas em lugares diferentes.
Perguntas frequentes
É melhor usar uma API ou fazer scraping de um site?
Use a API oficial quando ela fornecer os dados de que você precisa, no volume que você precisa, sob termos que permitem seu uso. Faça scraping quando não houver API, quando a API deixar de fora o que você precisa, ou quando você precisar dos dados como os usuários de um mercado específico os veem.
O web scraping é mais confiável do que uma API?
Geralmente menos, porque os layouts de página mudam sem aviso, enquanto as APIs são versionadas. Regras de extração, dados estruturados na página e monitoramento reduzem essa diferença, e uma web scraping API cuida de boa parte da manutenção para você.
Posso usar uma API e web scraping juntos?
Sim, e muitas equipes fazem isso: a API para o núcleo estável dos dados, e scraping para campos que a API não fornece, como preços ao vivo, promoções ou disponibilidade local.
O que é uma web scraping API?
Um serviço que busca páginas web para você por meio de seus próprios proxies e navegadores e devolve o HTML ou campos extraídos como JSON. Ele faz o scraping parecer uma chamada de API para o seu código, embora não substitua a própria API oficial de um site.
Conclusão
Comece pela API oficial se ela fornecer o que você precisa sob termos adequados. Recorra ao scraping para o que as APIs deixam de fora: fontes sem API, campos que a API omite, e a visão local, tal como vista, de preços e disponibilidade. A maioria dos projetos reais acaba usando ambos, escolhendo por campo em vez de por projeto, e uma web scraping API faz o lado do scraping parecer muito com o lado da API.