Slide 1

Slide 1 text

Crawler e automações com NodeJS

Slide 2

Slide 2 text

Guilherme Farias Full Stack Developer

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

O que é esse NodeJS que todo mundo fala? É uma plataforma de execução de javascript

Slide 5

Slide 5 text

E o que ele tem de diferente? Leve e eficiente Não bloqueante I/O Intenso É Javascript —

Slide 6

Slide 6 text

O que posso fazer com ele? WEB DESKTOP MOBILE LINHA DE COMANDO ROBÔS INTERNET DAS COISAS

Slide 7

Slide 7 text

Automação (do latim Automatus, que significa mover-se por si) é a aplicação de técnicas computadorizadas ou mecânicas para diminuir o uso de mão-de-obra em qualquer processo

Slide 8

Slide 8 text

Crawler (também chamado de bot, robot, robô, web crawler, spider, etc) É um software desenvolvido para realizar uma varredura na internet EM BUSCA de informação relevante a sua função.

Slide 9

Slide 9 text

No seu ela pode ser um DIFERENCIAL No setor industrial a automação é fundamental vantagem competitiva

Slide 10

Slide 10 text

Como posso usar na prática?

Slide 11

Slide 11 text

E o crawler onde se aplica?

Slide 12

Slide 12 text

Buscando info de cnpj de uma API JSON Moleza né?

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

Entenda o algoritmo do que você vai usar seja ele CPF, CNPJ, CEP, ou qualquer lá outra coisa Gerando as possibilidades No CNPJ a regra é XX.XXX.XXX/FFFF-DD Possibilidades de 00.000.000 até 99.999.999 O CNPJ 00.000.000 é do BANCO DO BRASIL Calcule os dígitos verificadores 00.000.000/0001-91 = BANCO DO BRASIL S.A.

Slide 15

Slide 15 text

Tabela das combinações válidas Banco de dados Tabela das combinações resolvidas

Slide 16

Slide 16 text

FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA FILA

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

npm install soap npm install string SOAP e HTML

Slide 21

Slide 21 text

Precisa de interação com a página? npm install nightmare

Slide 22

Slide 22 text

Fazendo uma busca no Google

Slide 23

Slide 23 text

Tirando print

Slide 24

Slide 24 text

Extraindo o HTML

Slide 25

Slide 25 text

type insert click wait pdf exists scrollTo select check uncheck screenshot evaluate Ações do Nightmare Mais infos em: npmjs.com/package/nightmare

Slide 26

Slide 26 text

1) Ir no site: https://nfse.recife.pe.gov.br/senhaweb/login.aspx 2) Digitar no input#ctl00_cphCabMenu_tbCpfCnpj 3) Digitar no input#ctl00_cphCabMenu_tbSenha 4) Digitar no input ctl00$cphCabMenu$ccCodigo$ccCodigo o CAPTCHA 5) Esperar aparecer a div#ctl00_pnConteudo 6) Clica no link .ctl00_Vcab_mnuRotinas_3 7) Digitar o CNPJ no input#ctl00_cphCabMenu_tbCPFCNPJTomador 8) Esperar a div#ctl00_cphCabMenu_pnDados 9) Digitar nota no textarea#ctl00_cphCabMenu_tbDiscriminacao 10)… 11) Clicar no botão #ctl00_cphCabMenu_btEmitir

Slide 27

Slide 27 text

github.com/segmentio/daydream Daydream

Slide 28

Slide 28 text

Se você cuida de um sistema que já tem as infos, cuidado que crawlers podem tá consumindo seu sistema

Slide 29

Slide 29 text

Como se proteger e como burlar as proteções

Slide 30

Slide 30 text

PROTEÇÕES QUE JÁ VI, DIFICULTOU, MAS DEU PRA BURLAR user-agent iP ip simultaneo proteção cloudflare CAPTCHA DE TEXTO CAPTCHA DE IMAGEM

Slide 31

Slide 31 text

Ah, e também tem gente utilizando crawler como oportunidade de négocio

Slide 32

Slide 32 text

eleicoes2016.com.br eleicoes2014.com.br

Slide 33

Slide 33 text

guilhermefarias.com speakerdeck.com/guilhermefarias GitHub.com/guilhermefarias twitter.com/guiky Obrigado!