Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Crawlers - Coletando e transformando dados da web

Crawlers - Coletando e transformando dados da web

Vivemos em um tempo onde a informação é a chave principal para tudo, queremos sempre consumir informação, criar aplicações para utilizar as informações e prover mais informações mas o que fazer quando se depararmos com a situação em que precisamos desenvolver algo dependente de uma informação que não está legível para ser utilizada? Em outras palavras mais simples, como consumir uma informação de um serviço que não tem API? É nesse momento em que entra o mundo de Crawlers. Essa palestra tem a intenção de mostrar as abordagens necessárias para se criar crawlers e como criá-los

Marcos Felipe

February 12, 2020
Tweet

More Decks by Marcos Felipe

Other Decks in Programming

Transcript

  1. “ Crawler é uma ferramenta que navega entre páginas da

    web utilizando uma regra específica. 4
  2. 5

  3. 6

  4. 11

  5. 12

  6. TasteDive crawler ◉ Obter os resultados relacionados de uma busca;

    ◉ A busca pode conter os filtros de categorias disponíveis no site; ◉ A resposta do Crawler deve estar em formato JSON; ◉ Os resultados devem ter seus nomes, categoria, likes e pontuação de classificação. 13
  7. Trabalho do Crawler - Obter os resultados relacionados - Buscar

    pelo filtro de categoria TasteDive crawler Trabalho do Scrapper - Obter as propriedades do resultado - Retornar os resultados em JSON 14
  8. Linguagem - Se aproxima com linguagem humana - Nível de

    abstração que facilita o entendimento - Não tem necessidade de conhecer instruções dos processadores Alto nível Crawler - Se aproxima com a interação humana - Nível de abstração que facilita o entendimento - Não tem necessidade de conhecer as instruções para processar 18
  9. Crawler - Se aproxima mais com a linguagem de desenvolvimento

    - Compreende as características do alvo - Instruções que serão executadas apenas para processar Linguagem - Se aproxima com linguagem de máquina - Compreende as características do computador - Instruções que serão executadas apenas pelo processador Baixo nível 19
  10. Características ◉ Utiliza menos recursos ◉ São mais rápidos ◉

    Executa apenas as regras necessárias para o processamento ◉ Criado com engenharia reversa 21
  11. 25

  12. 33

  13. 37

  14. 38

  15. 39

  16. 41

  17. 43

  18. 44

  19. Entendemos qual o processo do alvo e o que precisamos

    fazer para obter os resultados 50
  20. 52

  21. 54

  22. 56

  23. 57

  24. “ Os crawlers de baixo nível são recomendados quando as

    instruções são possíveis de serem reproduzidas e a taxa de erro da implementação seja baixo 58
  25. Características ◉ Utiliza muito recurso ◉ Executa as regras que

    o usuário iria fazer ◉ Criado baseado na interação do usuário ◉ Pouco suscetível a problemas. 60
  26. 62

  27. 66

  28. 68

  29. 69

  30. 71

  31. “ Os crawlers de alto nível são recomendados quando é

    necessário um browser por trás, o tempo e tamanho de processamento não importa ou as instruções de processamento são muitos complexas de serem reproduzidas 72
  32. Compartilhamento de recursos 75 O alvo tem um validador de

    javascript, para verificar se realmente está rodando no browser e esse validador gera uma sessão que é necessária para obter os resultados
  33. Compartilhamento de recursos Gerar uma sessão Obter o resultado Continuar

    o fluxo com a sessão gerada 76 Alto nível Baixo nível
  34. “ Os projetos com abordagem híbrida são recomendados quando você

    consegue separar os processos para cada tipo de crawler com o objetivo de reduzir tempo e/ou processamento 77
  35. O mundo sem regras ◉ Não tem muitas vagas para

    desenvolvedores de Crawlers ◉ Não tem material de referência ◉ Não tem boas práticas ◉ Não tem muitos exemplos ◉ Não tem muitas ferramentas 80