Slide 1

Slide 1 text

Crawlers - Coletando e transformando dados da web

Slide 2

Slide 2 text

*/omarkdev 2

Slide 3

Slide 3 text

O que é Crawler? 3

Slide 4

Slide 4 text

“ Crawler é uma ferramenta que navega entre páginas da web utilizando uma regra específica. 4

Slide 5

Slide 5 text

5

Slide 6

Slide 6 text

6

Slide 7

Slide 7 text

Mas também existem os Scrappers 7

Slide 8

Slide 8 text

“ Scrapper é uma ferramenta que pega informações específicas de páginas. 8

Slide 9

Slide 9 text

Eles podem trabalhar juntos ou separados! 9

Slide 10

Slide 10 text

Vamos imaginar um cenário real 10

Slide 11

Slide 11 text

11

Slide 12

Slide 12 text

12

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

Mas aqui, tudo vai ser Crawler. 15

Slide 16

Slide 16 text

Os crawlers podem ser divididos em 2 grupos 16 Baixo Nível Alto Nível

Slide 17

Slide 17 text

Podemos fazer uma analogia com linguagens de baixo e alto nível 17

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

Crawlers de baixo nível 1 20

Slide 21

Slide 21 text

Características ◉ Utiliza menos recursos ◉ São mais rápidos ◉ Executa apenas as regras necessárias para o processamento ◉ Criado com engenharia reversa 21

Slide 22

Slide 22 text

“ O Crawler de baixo nível simula as instruções necessárias para serem executadas do alvo 22

Slide 23

Slide 23 text

Vamos entender como a página mostra os resultados 23

Slide 24

Slide 24 text

24 Realizamos uma busca

Slide 25

Slide 25 text

25

Slide 26

Slide 26 text

26 Analisamos o DevTools

Slide 27

Slide 27 text

27 Confirmamos se a página já vem com os dados ou se obtém de outro lugar

Slide 28

Slide 28 text

28 Concluímos que a página já carrega as informações necessárias

Slide 29

Slide 29 text

29 Ok, identificamos o que precisamos fazer, apenas obter o conteúdo desta página

Slide 30

Slide 30 text

30 Agora precisamos entender como chegar naquela página

Slide 31

Slide 31 text

31 Aparentemente a URL é formada apenas pelo slug da pesquisa

Slide 32

Slide 32 text

32 Testamos nossa teoria

Slide 33

Slide 33 text

33

Slide 34

Slide 34 text

34 O necessário é apenas a url?

Slide 35

Slide 35 text

35 Existem mais coisas que vão nas requisições

Slide 36

Slide 36 text

36 Vamos por tentativa e erro

Slide 37

Slide 37 text

37

Slide 38

Slide 38 text

38

Slide 39

Slide 39 text

39

Slide 40

Slide 40 text

40 Se funcionar, quer dizer que todas as informações que você precisa estão ali

Slide 41

Slide 41 text

41

Slide 42

Slide 42 text

42 Mas se o slug for algo inexistente?

Slide 43

Slide 43 text

43

Slide 44

Slide 44 text

44

Slide 45

Slide 45 text

45 Ok, conseguimos saber se uma busca é válida e conseguimos reproduzi-lá

Slide 46

Slide 46 text

46 Agora o que falta apenas é poder realizar buscas pelas categorias

Slide 47

Slide 47 text

47 Realizar a busca com o filtro de categorias

Slide 48

Slide 48 text

48 Analisamos novamente o DevTools

Slide 49

Slide 49 text

49 Analisamos como chegar naquela página novamente Aparentemente agora a URL é formada pela categoria

Slide 50

Slide 50 text

Entendemos qual o processo do alvo e o que precisamos fazer para obter os resultados 50

Slide 51

Slide 51 text

Agora vamos criar o Crawler 51

Slide 52

Slide 52 text

52

Slide 53

Slide 53 text

Mas e para formatar a resposta? 53

Slide 54

Slide 54 text

54

Slide 55

Slide 55 text

55 Query’s com CSS Selector

Slide 56

Slide 56 text

56

Slide 57

Slide 57 text

57

Slide 58

Slide 58 text

“ 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

Slide 59

Slide 59 text

2 59 Crawlers de alto nível

Slide 60

Slide 60 text

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

Slide 61

Slide 61 text

“ O Crawler de alto nível simula a interação do usuário 61

Slide 62

Slide 62 text

62

Slide 63

Slide 63 text

Vamos entender o que o usuário faz 63

Slide 64

Slide 64 text

64 Usuário acessa a página inicial

Slide 65

Slide 65 text

65 Digita a pesquisa e clica em ‘Recommend’

Slide 66

Slide 66 text

66

Slide 67

Slide 67 text

Traduzindo isso para o puppeteer 67

Slide 68

Slide 68 text

68

Slide 69

Slide 69 text

69

Slide 70

Slide 70 text

70 Caso queira ver a interação com a página

Slide 71

Slide 71 text

71

Slide 72

Slide 72 text

“ 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

Slide 73

Slide 73 text

3 73 Projeto híbrido (baixo e alto nível)

Slide 74

Slide 74 text

Compartilhar os recursos de responsabilidade de cada nível 74

Slide 75

Slide 75 text

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

Slide 76

Slide 76 text

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

Slide 77

Slide 77 text

“ 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

Slide 78

Slide 78 text

Ok, gostei, como posso me aprofundar? 78

Slide 79

Slide 79 text

O mundo dos crawlers é um mundo sem regras. 79

Slide 80

Slide 80 text

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

Slide 81

Slide 81 text

Somos todos pioneiros! 81

Slide 82

Slide 82 text

No content