$30 off During Our Annual Pro Sale. View Details »

Crawler e automações com NodeJS

Crawler e automações com NodeJS

Guilherme Farias

October 21, 2016
Tweet

More Decks by Guilherme Farias

Other Decks in Programming

Transcript

  1. Crawler e automações
    com NodeJS

    View Slide

  2. Guilherme Farias
    Full Stack Developer

    View Slide

  3. View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  7. 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

    View Slide

  8. 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.

    View Slide

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

    View Slide

  10. Como posso
    usar na prática?

    View Slide

  11. E o crawler
    onde se aplica?

    View Slide

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

    View Slide

  13. View Slide

  14. 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.

    View Slide

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

    View Slide

  16. 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

    View Slide

  17. View Slide

  18. View Slide

  19. View Slide

  20. npm install soap
    npm install string
    SOAP e HTML

    View Slide

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

    View Slide

  22. Fazendo uma busca no Google

    View Slide

  23. Tirando print

    View Slide

  24. Extraindo o HTML

    View Slide

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

    View Slide

  26. 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

    View Slide

  27. github.com/segmentio/daydream
    Daydream

    View Slide

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

    View Slide

  29. Como se proteger e como
    burlar as proteções

    View Slide

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

    View Slide

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

    View Slide

  32. eleicoes2016.com.br
    eleicoes2014.com.br

    View Slide

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

    View Slide