Lançamento estela oss

estela, um cluster de web scraping elástico

By Breno Colom

4 min read | June 24, 2022


estela é um cluster de web scraping elástico rodado no Kubernetes. Ele fornece mecanismos para implantar, rodar e dimensionar spiders de web scraping por meio de uma API REST e uma interface web.

O desenho da estela é baseado em anos de experiência em projetos de web scraping de complexidade e escalas variadas. A equipe por trás do desenho e desenvolvimento inicial da estela inclui veteranos de web scraping que estiveram envolvidos na indústria desde o início.

Entre outras coisas, vimos grandes mudanças na indústria:

  • O rápido crescimento da indústria de web scraping nos últimos 10 anos. No ano passado, o The Economist listou o web scraping como a primeira entre as novas fontes de dados que impulsam as mudanças tecnológicas nas finanças e as previsões recentes têm o mercado global de dados alternativos esperando atingir um valor de US$ 143 bilhões até 2030.

  • Passamos dos primeiros anos em que a legalidade da web scraping era um tópico de controvérsia para empresas da Fortune 100, organizações governamentais e até bancos tradicionais envolvidos na extração de dados da web. Há alguns meses, um tribunal de apelações dos EUA reafirmou que a extração de sites públicos na web é legal. Essa decisão deve ser ratificada pela Suprema Corte dos EUA em breve, abrindo um importante precedente e pondo fim a uma discussão de longa data.

Mesmo assim, essas boas notícias não implicam que o web scraping tenha se tornado mais fácil, pelo contrário:

  • Hoje, as equipes de web scraping e os desenvolvedores de proteção de conteúdo estão engajados em uma corrida armamentista contínua. As apostas são maiores do que nunca, por exemplo, no ano passado, um lançamento coordenado de sites atualizados e contramedidas anti-bot por muitos retails no início da Black Friday causou grandes interrupções de dados para a maioria das organizações durante o período mais crítico do ano para scraping no vertical e-commerce.

  • O boom tecnológico relacionado à pandemia (juntamente com tendências associadas, como a aceitação do comércio eletrônico em regiões emergentes como a América Latina) acelerou a necessidade de web data insights, o que significou acolher muitos recém-chegados ao setor, de consumidores a fornecedores. E, no entanto, a desaceleração tecnológica do boom de acompanhamento está forçando ás organizações a avaliar sua estratégia alternativa de aquisição de dados, com um foco renovado na economia de custos, redução da redundância e facilitação do gerenciamento.

Independentemente de você ter terceirizado a extração de dados web ou gerenciado internamente, os desafios tecnológicos e contextuais deste momento garantem um jeito melhor de avançar que não exige reinventar constantemente a roda ou depender de nuvens proprietárias de terceiros.

Não tinha até agora uma solução abrangente de orquestração de web scraping construída numa pilha moderna baseada em contêiner. Hoje temos o orgulho de anunciar o lançamento do Estela como software de código aberto sob a licença do MIT:

github.com/bitmakerla/estela

estela oferece as seguintes vantagens sobre as alternativas existentes:

  • Gerenciamento fácil de cargas de trabalho de scraping. Estela atualmente suporta spiders escritos com Scrapy.

  • Escalabilidade e elasticidade incorporadas. Estela está baseado em Kubernetes para fornecer gerenciamento de aplicativos em containers. Isso permite que seu cluster de scraping se acomode tanto ao crescimento linear da sua infraestrutura de scraping quanto aos picos inesperados.

  • Desenho assíncrono tolerante a falhas. Mesmo que sejam milhares de scraping jobs paralelos, estela garante que nenhum dado seja perdido.

  • Segurança e privacidade. Embora existam plataformas proprietárias mais antigas, não esperamos que sejam lançadas como código aberto tão cedo, se for o caso. Estela, por outro lado, como um projeto de código aberto, pode ser implantado na sua própria nuvem ou datacenter agora para começar a conduzir sua plataforma de scraping e dimensionar automaticamente conforme necessário.

estela é composto por três módulos:

  • API REST: construída com o Django REST framework toolkit, expondo vários endpoints para gerenciar projetos, spiders e jobs. Ele usa o Celery para o processamento de tarefas e para cuidar do deployment dos seus projetos Scrapy, entre outras coisas.

  • Queueing: Estela precisa de uma plataforma de alta taxa de transferência e baixa latência que controle os feeds de dados em tempo real numa arquitetura produtor-consumidor. Neste módulo, você encontrará um consumidor Kafka usado para coletar e transportar as informações dos trabalhos de spider para um banco de dados.

  • Web: Uma interface web implementada com React e Typescript que permite gerenciar projetos e spiders.

Os itens a seguir são algumas das proximas funcionalidades planejadas:

  • Contabilidade (por job, projeto e organização)
  • Configuração de retenção de dados
  • Suporte para coleções (armazenamento chave/valor no qual vários jobs podem escrever)
  • Relatórios e alertas
  • Melhorias na interface da Web
  • Suporte para formatos de armazenamento colunar (Apache Arrow / Parquet)
  • Suporte para estruturas e linguagens de scraping adicionais

Colocamos muito esforço e experiência neste primeiro lançamento público e temos grandes expectativas para o projeto. Estamos ansiosos para que o resto da comunidade de web scraping ache Estela tão útil quanto é para nós.

Finalmente, gostaríamos de receber qualquer feedback e contribuições para o projeto, portanto, verifique o repo e comece a testar ele. Happy scraping!