Slide 1

Slide 1 text

6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 1/50 INTRODUÇÃO AO XPATH: INTRODUÇÃO AO XPATH: NAVEGANDO (E EXTRAINDO DADOS) DE DOCUMENTOS HTML NAVEGANDO (E EXTRAINDO DADOS) DE DOCUMENTOS HTML

Slide 2

Slide 2 text

6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 2/50 RENNE ROCHA RENNE ROCHA Python Developer na Scrapinghub Laboratório Hacker de Campinas (https://lhc.net.br) Grupy-Campinas | Grupy-Jundiaí [email protected] @rennerocha (Github, Twitter, Telegram, etc)

Slide 3

Slide 3 text

6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 3/50 XPath (XML Path Language) é uma linguagem de consulta para selecionar e navegar por nós de um documento XML.

Slide 4

Slide 4 text

6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 4/50 XPath (XML Path Language) é uma linguagem de consulta para selecionar e navegar por nós de um documento XML.

Slide 5

Slide 5 text

6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 5/50 XPath (XML Path Language) é uma linguagem de consulta para selecionar e navegar por nós de um documento XML.

Slide 6

Slide 6 text

6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 6/50 XPath (XML Path Language) é uma linguagem de consulta para selecionar e navegar por nós de um documento XML.

Slide 7

Slide 7 text

6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 7/50 XPath (XML Path Language) é uma linguagem de consulta para selecionar e navegar por nós de um documento XML.

Slide 8

Slide 8 text

6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 8/50 XML (Extensible Markup Language) é um formato baseado em texto para representação de informações estruturadas, como por exemplo documentos, con gurações, livros, transações, etc.

Slide 9

Slide 9 text

6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 9/50 XML (Extensible Markup Language) é um formato baseado em texto para representação de informações estruturadas, como por exemplo documentos, con gurações, livros, transações, etc.

Slide 10

Slide 10 text

6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 10/50

Slide 11

Slide 11 text

6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 11/50 CASOS DE USO CASOS DE USO Arquivos de Con guração Troca de mensagens entre aplicações Padrão para documentos (Open Document Format)

Slide 12

Slide 12 text

6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 12/50 HTML HTML

Slide 13

Slide 13 text

6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 13/50 HTML HTML HYPERTEXT MARKUP LANGUAGE HYPERTEXT MARKUP LANGUAGE

Slide 14

Slide 14 text

6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 14/50

Slide 15

Slide 15 text

6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 15/50 https://docs.python.org/3/library/xml.etree.elementtree.html/

Slide 16

Slide 16 text

6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 16/50 https://lxml.de/

Slide 17

Slide 17 text

6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 17/50 https://parsel.readthedocs.io/

Slide 18

Slide 18 text

6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 18/50 from parsel import Selector with open("brigadeiro.html", "r") as xml_file: content = xml_file.read() selector = Selector(text=content) 1 2 3 4 5

Slide 19

Slide 19 text

6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 19/50 selector.xpath("/title") 1

Slide 20

Slide 20 text

6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 20/50 1 2 Receita de Brigadeiro 3 4 5

Ingredientes

6
    7
  • Manteiga
  • 8
  • Leite Condensado
  • 9
  • Chocolate em Pó
  • 10
  • Choc. Granulado
  • 11
12

Instruções de Preparo

13
    14
  1. Aqueça a panela em fogo médio.
  2. 15
  3. Acrescente 1 colher de sopa de manteiga.
  4. 16
  5. Acrescente o Leite Condensado
  6. 17
  7. Acrescente o Chocolate em Pó
  8. 18
  9. Mexa sem parar até desgrudar da panela.
  10. 19
20 21 22

Slide 21

Slide 21 text

6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 21/50 selector.xpath("/html/head/title") 1

Slide 22

Slide 22 text

6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 22/50 Receita de Brigadeiro 1 2 3 4 5

Ingredientes

6
    7
  • Manteiga
  • 8
  • Leite Condensado
  • 9
  • Chocolate em Pó
  • 10
  • Choc. Granulado
  • 11
12

Instruções de Preparo

13
    14
  1. Aqueça a panela em fogo médio.
  2. 15
  3. Acrescente 1 colher de sopa de manteiga.
  4. 16
  5. Acrescente o Leite Condensado
  6. 17
  7. Acrescente o Chocolate em Pó
  8. 18
  9. Mexa sem parar até desgrudar da panela.
  10. 19
20 21 22

Slide 23

Slide 23 text

6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 23/50 selector.xpath("//title") 1

Slide 24

Slide 24 text

6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 24/50 Receita de Brigadeiro 1 2 3 4 5

Ingredientes

6
    7
  • Manteiga
  • 8
  • Leite Condensado
  • 9
  • Chocolate em Pó
  • 10
  • Choc. Granulado
  • 11
12

Instruções de Preparo

13
    14
  1. Aqueça a panela em fogo médio.
  2. 15
  3. Acrescente 1 colher de sopa de manteiga.
  4. 16
  5. Acrescente o Leite Condensado
  6. 17
  7. Acrescente o Chocolate em Pó
  8. 18
  9. Mexa sem parar até desgrudar da panela.
  10. 19
20 21 22

Slide 25

Slide 25 text

6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 25/50 selector.xpath("//h1") 1

Slide 26

Slide 26 text

6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 26/50

Ingredientes

Instruções de Preparo

1 2 Receita de Brigadeiro 3 4 5 6
    7
  • Manteiga
  • 8
  • Leite Condensado
  • 9
  • Chocolate em Pó
  • 10
  • Choc. Granulado
  • 11
12 13
    14
  1. Aqueça a panela em fogo médio.
  2. 15
  3. Acrescente 1 colher de sopa de manteiga.
  4. 16
  5. Acrescente o Leite Condensado
  6. 17
  7. Acrescente o Chocolate em Pó
  8. 18
  9. Mexa sem parar até desgrudar da panela.
  10. 19
20 21 22

Slide 27

Slide 27 text

6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 27/50 selector.xpath("//ul/*") 1

Slide 28

Slide 28 text

6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 28/50
  • Manteiga
  • Leite Condensado
  • Chocolate em Pó
  • Choc. Granulado
  • 1 2 Receita de Brigadeiro 3 4 5

    Ingredientes

    6
      7 8 9 10 11
    12

    Instruções de Preparo

    13
      14
    1. Aqueça a panela em fogo médio.
    2. 15
    3. Acrescente 1 colher de sopa de manteiga.
    4. 16
    5. Acrescente o Leite Condensado
    6. 17
    7. Acrescente o Chocolate em Pó
    8. 18
    9. Mexa sem parar até desgrudar da panela.
    10. 19
    20 21 22

    Slide 29

    Slide 29 text

    6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 29/50 selector.xpath("//ul/li[2]") 1

    Slide 30

    Slide 30 text

    6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 30/50
  • Leite Condensado
  • 1 2 Receita de Brigadeiro 3 4 5

    Ingredientes

    6
      7
    • Manteiga
    • 8 9
    • Chocolate em Pó
    • 10
    • Choc. Granulado
    • 11
    12

    Instruções de Preparo

    13
      14
    1. Aqueça a panela em fogo médio.
    2. 15
    3. Acrescente 1 colher de sopa de manteiga.
    4. 16
    5. Acrescente o Leite Condensado
    6. 17
    7. Acrescente o Chocolate em Pó
    8. 18
    9. Mexa sem parar até desgrudar da panela.
    10. 19
    20 21 22

    Slide 31

    Slide 31 text

    6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 31/50 In [1]: selector.xpath("//ul/li/text()").getall() Out[1]: [ 'Manteiga', 'Leite Condensado', 'Chocolate em Pó', 'Chocolate Granulado' ] 1 2 3 4 5 6 7

    Slide 32

    Slide 32 text

    6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 32/50 Receita de Brigadeiro

    Ingredientes

    • Manteiga
    • Leite Condensado
    • Chocolate em Pó
    • Choc. Granulado

    Instruções de Preparo

    1. Aqueça a panela em fogo médio.
    2. Acrescente 1 colher de sopa de manteiga.
    3. Acrescente o Leite Condensado
    4. Acrescente o Chocolate em Pó
    5. Mexa sem parar até desgrudar da panela.

    Slide 33

    Slide 33 text

    6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 33/50 In [1]: selector.xpath("//ul/li/@data-qtd").getall() Out[1]: ['1', '1', '4', '1'] 1 2

    Slide 34

    Slide 34 text

    6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 34/50 selector.xpath("//li[contains(., 'Chocolate')]") 1

    Slide 35

    Slide 35 text

    6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 35/50
  • Chocolate em Pó
  • Acrescente o Chocolate em Pó
  • 1 2 Receita de Brigadeiro 3 4 5

    Ingredientes

    6
      7
    • Manteiga
    • 8
    • Leite Condensado
    • 9 10
    • Choc. Granulado
    • 11
    12

    Instruções de Preparo

    13
      14
    1. Aqueça a panela em fogo médio.
    2. 15
    3. Acrescente 1 colher de sopa de manteiga.
    4. 16
    5. Acrescente o Leite Condensado
    6. 17 18
    7. Mexa sem parar até desgrudar da panela.
    8. 19
    20 21 22

    Slide 36

    Slide 36 text

    6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 36/50 selector.xpath("//ul/li[not(contains(., 'Chocolate'))]") 1

    Slide 37

    Slide 37 text

    6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 37/50
  • Manteiga
  • Leite Condensado
  • Choc. Granulado
  • 1 2 Receita de Brigadeiro 3 4 5

    Ingredientes

    6
      7 8 9
    • Chocolate em Pó
    • 10 11
    12

    Instruções de Preparo

    13
      14
    1. Aqueça a panela em fogo médio.
    2. 15
    3. Acrescente 1 colher de sopa de manteiga.
    4. 16
    5. Acrescente o Leite Condensado
    6. 17
    7. Acrescente o Chocolate em Pó
    8. 18
    9. Mexa sem parar até desgrudar da panela.
    10. 19
    20 21 22

    Slide 38

    Slide 38 text

    6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 38/50 selector.xpath("//li[@data-unit='colher']") 1

    Slide 39

    Slide 39 text

    6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 39/50
  • Manteiga
  • Chocolate em Pó
  • 1 2 Receita de Brigadeiro 3 4 5

    Ingredientes

    6
      7 8
    • Leite Condensado
    • 9 10
    • Choc. Granulado
    • 11
    12

    Instruções de Preparo

    13
      14
    1. Aqueça a panela em fogo médio.
    2. 15
    3. Acrescente 1 colher de sopa de manteiga.
    4. 16
    5. Acrescente o Leite Condensado
    6. 17
    7. Acrescente o Chocolate em Pó
    8. 18
    9. Mexa sem parar até desgrudar da panela.
    10. 19
    20 21 22

    Slide 40

    Slide 40 text

    6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 40/50 selector.xpath("//li[@data-qtd=1 and @data-unit='colher']") 1

    Slide 41

    Slide 41 text

    6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 41/50
  • Manteiga
  • 1 2 Receita de Brigadeiro 3 4 5

    Ingredientes

    6
      7 8
    • Leite Condensado
    • 9
    • Chocolate em Pó
    • 10
    • Choc. Granulado
    • 11
    12

    Instruções de Preparo

    13
      14
    1. Aqueça a panela em fogo médio.
    2. 15
    3. Acrescente 1 colher de sopa de manteiga.
    4. 16
    5. Acrescente o Leite Condensado
    6. 17
    7. Acrescente o Chocolate em Pó
    8. 18
    9. Mexa sem parar até desgrudar da panela.
    10. 19
    20 21 22

    Slide 42

    Slide 42 text

    6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 42/50 selector.xpath("//li[@data-qtd>2]") 1

    Slide 43

    Slide 43 text

    6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 43/50
  • Chocolate em Pó
  • 1 2 Receita de Brigadeiro 3 4 5

    Ingredientes

    6
      7
    • Manteiga
    • 8
    • Leite Condensado
    • 9 10
    • Choc. Granulado
    • 11
    12

    Instruções de Preparo

    13
      14
    1. Aqueça a panela em fogo médio.
    2. 15
    3. Acrescente 1 colher de sopa de manteiga.
    4. 16
    5. Acrescente o Leite Condensado
    6. 17
    7. Acrescente o Chocolate em Pó
    8. 18
    9. Mexa sem parar até desgrudar da panela.
    10. 19
    20 21 22

    Slide 44

    Slide 44 text

    6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 44/50

    Slide 45

    Slide 45 text

    6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 45/50 selector.xpath( "//h1[contains(., 'Instruções')]/preceding-sibling::ul" ) 1 2 3

    Slide 46

    Slide 46 text

    6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 46/50
    • Manteiga
    • Leite Condensado
    • Chocolate em Pó
    • Choc. Granulado
    1 2 Receita de Brigadeiro 3 4 5

    Ingredientes

    6 7 8 9 10 11 12

    Instruções de Preparo

    13
      14
    1. Aqueça a panela em fogo médio.
    2. 15
    3. Acrescente 1 colher de sopa de manteiga.
    4. 16
    5. Acrescente o Leite Condensado
    6. 17
    7. Acrescente o Chocolate em Pó
    8. 18
    9. Mexa sem parar até desgrudar da panela.
    10. 19
    20 21 22

    Slide 47

    Slide 47 text

    6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 47/50 selector.xpath("//title/ancestor::html//h1") 1

    Slide 48

    Slide 48 text

    6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 48/50

    Ingredientes

    Instruções de Preparo

    1 2 Receita de Brigadeiro 3 4 5 6
      7
    • Manteiga
    • 8
    • Leite Condensado
    • 9
    • Chocolate em Pó
    • 10
    • Choc. Granulado
    • 11
    12 13
      14
    1. Aqueça a panela em fogo médio.
    2. 15
    3. Acrescente 1 colher de sopa de manteiga.
    4. 16
    5. Acrescente o Leite Condensado
    6. 17
    7. Acrescente o Chocolate em Pó
    8. 18
    9. Mexa sem parar até desgrudar da panela.
    10. 19
    20 21 22

    Slide 49

    Slide 49 text

    6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 49/50 https://developer.mozilla.org/pt- PT/docs/Web/XPath http://www.dicas- l.com.br/arquivo/tutorial_xpath.php

    Slide 50

    Slide 50 text

    6/10/2019 Introdução ao XPath file:///home/renne/projects/rennerocha/apresentacoes/20190609_CaipyraXPath/index.html?print-pdf 50/50 OBRIGADO OBRIGADO