Recolha eficiente de dados de sítios Web para uma melhor gestão de dados

Recolha eficiente de dados de sítios Web para uma melhor gestão de dados

Principais pormenores

Aceder a múltiplas fontes de dados com a extração de dados.

  • Desafio
    Recolha rápida e exacta de dados de várias fontes
  • Solução
    Melhores práticas para uma recolha de dados da Web robusta e resistente
  • Tecnologias e ferramentas
    Microsoft Azure Cloud Services para alojamento, afinação e administração de infra-estruturas. Linguagem Python com as bibliotecas e estruturas necessárias (Azure-sdk, Scrapy, Selenium, etc.) para o processo de recolha e rastreio de sítios Web

Cliente

O cliente é uma organização não comercial que presta apoio a pequenas empresas e empresários afro-americanos. Orgulham-se de fornecer serviços que ajudam os empresários afro-americanos a obter subsídios e a obter sucesso em concursos.

Desafio: recolha rápida e exacta de dados de várias fontes

O cliente lida regularmente com grandes quantidades de dados provenientes de várias fontes. Por isso, a gestão de dados tornou-se uma preocupação para eles.

Pretendiam recolher ofertas de emprego, orientação e oportunidades de rede para empresários afro-americanos talentosos de vários sítios Web e publicá-las na sua própria plataforma. Assim, os empresários podem facilmente descobrir empresas pertencentes a afro-americanos e apoiá-las ou criar a sua própria empresa.

A ESSID Solutions foi desafiada a desenvolver uma solução sólida de recolha de dados para o mercado do cliente.

Solução: melhores práticas para uma recolha de dados da Web robusta e resiliente

A nossa equipa de engenheiros aplicou a sua experiência em recolha de dados para permitir uma recolha eficaz de dados de várias fontes.

Esquema de solução de raspagem de dados de sites

A equipa da ESSID Solutions teve de configurar a infraestrutura e o fluxo de código para o cliente:

  1. Parte Git e CI/CD

    Para a gestão de código, foi utilizado o repositório AzureDevOps com uma configuração de pipeline que permitiu à nossa equipa criar e enviar imagens docker para o registo utilizando um agente de trabalho paralelo.

  2. Registo e parte da aplicação lógica

    Em seguida, criámos o Registo de Contentores do Azure Docker em Azure para armazenar as nossas imagens docker.

    Em seguida, precisámos de criar instâncias de docker a partir de imagens utilizando a aplicação Azure Logic para executar o código do raspador em paralelo e separadamente.

  3. Peça do raspador

    Durante esta fase, a equipa da ESSID Solutions criou instâncias de contentores com aplicações Logic. Depois, precisámos de dar a cada contentor acesso aos recursos do Azure e a dados sensíveis, como palavras-passe, cadeias de ligação, etc., que estavam armazenados no Azure KeyVault.

    projeto de peça de raspador

    Para armazenar os resultados dos scrapers, a nossa equipa decidiu criar uma conta de armazenamento que seria como uma pasta na nuvem para guardar os dados recolhidos. Depois disso, conseguimos iniciar os nossos scrapers de forma manual, mas precisávamos de alguma orquestração, automatização e pós-processamento.

  4. Fábrica de dados e parte de orquestração

    Os nossos engenheiros executaram todos os nossos scrapers com acionador de tempo e num único pipeline executado com o Azure Data Factory.

    O pipeline principal deveria iniciar todos os contentores com pedidos através da API do Azure e, em seguida, executar DataBricks Cadernos de notas para tratar os dados recolhidos.

    projeto de parte de orquestração

  5. DataBricks

    Nesta fase, estávamos a eliminar todos os dados dos sítios Web (uma vez que o carregamento incremental de dados dos sítios Web não é possível ou difícil) e a processar/gravar todos os dados na base de dados. Antes de carregar novos dados para a base de dados, eliminámos os dados existentes.

    Como resultado, o cliente tem uma solução robusta de extração de dados que extrai dados de vários sítios e listas de empresas e reúne informações sobre empresas fundadas por afro-americanos que são úteis para os subscritores da plataforma do cliente.

Resultado: otimização da recolha de dados para reduzir o tempo de processamento

A nossa equipa de cientistas e engenheiros de dados recorreu a várias fontes para satisfazer as necessidades de recolha de dados do cliente.

A nossa solução permitiu que o cliente se tornasse mais capaz das seguintes formas