ImportXML – Guia de Uso e Exemplos Práticos

Olá leitores da Agência Mestre,

Nestes últimos anos que venho trabalhando com SEO, uma das áreas que tenho mais concentrado energia é no entendimento de tarefas da agência. Quando falamos das tarefas através da ótica de um gerente ou do dono da agência, tentamos observar não somente o quão bem uma tarefa é realizada, mas também o tempo em que ela é realizada. Esta análise de tempo nos passa a uma ótica mais precisa, onde tentamos responder a seguinte pergunta: podemos fazer esta tarefa em uma tempo menor?

Este tipo de análise é o que faço nos dias de hoje aqui na Agência Mestre, tentando identificar tarefas repetitivas e cansativas para os nossos analistas e assistentes. Diante desta repetição, juntamente com o nosso time de desenvolvimento, criamos aplicações para minimizar o esforço dos nossos analistas e assim dar a toda a agência um melhor rendimento.

E diante desta onda de programação e criação de aplicações para minimizar o tempo, aprendi uma técnica muito boa, utilizando o famoso Google Docs, o “pacote office” do Google. Nele, mais especificamente na parte de planilhas, existe uma função chamada ImportXML, onde é possível utilizá-la para ler documentos publicados na Internet.

Introdução ao ImportXML

O ImportXML é uma função existente no Google Docs que lhe permite ler informações de arquivos xml, html, csv, tsv, e até feeds RSS ou Atom. Desta forma, através de uma planilha criada no Google Docs, você pode chamar um arquivo externo e combinar com um sistema de navegação do conteúdo, chamado XPath, para conseguir entender e analisar os dados de arquivos.

Um exemplo simples de chamada do ImportXML é o seguinte:
=importXml(“www.google.com”; “//a/@href”).

Este código, basicamente, retorna todas as URLs contidas em todas as tags “a” na página inicial do Google.

O XPath

O XPath é uma sintaxe de navegação de elementos e atributos de um arquivo XML reconhecido pela W3C. Com este tipo de navegação é possível abrir um arquivo XML, por exemplo, e navegar entre os nós pais, filhos e filhos dos filhos.

Os Nós

No XPath, existem diversos tipos de nós, os quais compõe um arquivo XML formando uma árvore. O nó no topo da árvore é chamado de raiz (aqui no caso, pense em uma árvore invertida). A partir da raiz, podemos aprofundar mais e mais, analisando cada uma de suas ramificações.

Por exemplo, observe o seguinte código XML:

<?xml version="1.0" encoding="ISO-8859-1"?>
 
<bookstore>
  <book>
    <title lang="en">Harry Potter</title>
    <author>J K. Rowling</author>
    <year>2005</year>
    <price>29.99</price>
  </book>
</bookstore>

Deste código, podemos visualizar os seguintes nós do XML:

<bookstore> (elemento raiz)
 
<author>J K. Rowling</author> (elemento)
 
lang="en" (atributo)

Valores Atômicos

Os valores atômicos são os nós que não possuem filhos ou pais. Por exemplo, considerando ainda o código do XML inicial, podemos identificar os seguintes valores atômicos:

J K. Rowling
 
"en"

Relacionamento entre Nós

Conforme venho comentando, a estrutura de um arquivo organizado, como o XML, é composta de relacionamento entre os nós da árvore. Para cada passo mais profundo na árvore estabelecemos uma relação de parentesco. Considerando o código de exemplo abaixo, o nó “book” é o pai dos nós title, author, year, e price.

<book>
  <title>Harry Potter</title>
  <author>J K. Rowling</author>
  <year>2005</year>
  <price>29.99</price>
</book>

Ainda no exemplo acima, mas com outra visão, os nós title, author, year, e price são nós filhos do nó “book”.

Outra nomeclatura importante além de nós pais e nós filhos, é a de ancestrais e decendentes. No exemplo acima, os ancestrais do nó “title” são os nós “book” e “bookstore”. Por outro lado, os decendentes do nó “bookstore” são book, title, author, year, e price.

Sintaxe do XPah

Para explicar a sintaxe do XPath, vamos considerar o seguinte trecho de um XML:

<?xml version="1.0" encoding="ISO-8859-1"?>
 
<bookstore>
 
<book>
  <title lang="eng">Harry Potter</title>
  <price>29.99</price>
</book>
 
<book>
  <title lang="eng">Learning XML</title>
  <price>39.95</price>
</book>

Selecionando Nós

O XPath utiliza expressões para conseguir navegar entre os nós do documento XML. As expressões mais comuns para fazer a navegação são:

Expressão Descrições
nome do nó Seleciona todos os nós filhos do nó especificado
/ Seleciona a partir do nó raiz
// Seleciona nós no documento a partir do nó corrente que correspondem com a seleção, não importando onde eles estão
. Seleciona o nó atual
.. Seleciona o nó pai do nó atual
@ Seleciona atributos

Tendo em vista as expressões acima, o resultado da aplicação delas em nosso XML de exemplo seria:

Expressão Resultado
bookstore Seleciona todos os nós filhos do elemento “bookstore”
/bookstore Seleciona o elemento raiz “bookstore”.

Nota: Se a expressão iniciar com uma barra ( / ) ela irá sempre representar o caminho absoluto it para um elemento!

bookstore/book Seleciona todos os elementos “book” que são filhos da “bookstore”
//book Seleciona todos os elementos “book” no importando onde eles estejam no documento.
bookstore//book Seleciona todos os elementos “book” que são descendentes do elemento “bookstore”, não importando onde eles estejam dentro do elemento “bookstore”.
//@lang Seleciona todos os atributos que estão nomeados como “lang”.

Exemplo de Leitura de Página

Para entender melhor como podemos combinar o XPath com o ImportXML no Google Docs, crie uma planilha simples no Gdocs. Para o nosso exemplo vamos fazer uma solicitação na página inicial da Agência Mestre. Vamos buscar pelo título da página.

Pois bem, para isto, vamos chamar a seguinte função na nossa planilha:
=ImportXML(“http://www.agenciamestre.com”;”//title”)

Neste caso, a nossa expressão do XPath solicita que encontremos todos os nós “title” não importando a localização no documento, ou seja, tanto faz, no início, meio ou fim do documento. Ao chamar esta função, a planilha irá retornar a resposta:
Agência Mestre – Otimização de Sites (SEO)

Um outro exemplo, ainda em cima da página inicial da Agência Mestre, seria solicitar todos os links existentes na página. Um detalhe para este caso é que desejamos saber apenas o texto âncora, ou seja, o conteúdo do nó. Para isto, devemos chamar a seguinte função na nossa planilha:
=ImportXML(“http://www.agenciamestre.com”;”//a”)

Com isto, a planilha irá nos mostrar todos os textos âncoras existentes em todos os links. Agora imagine que precisamos das URLs que os links apontam. Para isto, temos que chamar a seguinte função:
=ImportXML(“http://www.agenciamestre.com”;”//a/@href”)

Na função do XPath, solicitamos todos os nós “a”, em qualquer parte do documento, e, em seguida, pedimos todos os conteúdos dos atributos “href” destes nós “a”. Assim, a função retorna todas as URLs de links da página.

Conclusões e Recomendações

Como pudemos ver o ImportXML é uma função muito interessante do Google Docs, onde podemos utilizá-lo para a leitura de arquivos estruturados. Seja uma página HTML, seja um XML, seja um feed RSS, podemos utilizar esta função para obter dados e analisá-los dentro de uma planilha do Gdocs.

Nos próximos artigos estaremos cobrindo diversas aplicações utilizando o ImportXML, tais como análise On Page, de backlinks e até mesmo de métricas para social media.

Espero que vocês tenham gostado desta primeira abordagem e até o próximo artigo!

Receba Novidades

Insira seu email para receber novidades e dicas exclusivas da Agência Mestre!
Divulgue este artigo

6 Comentários para “ImportXML – Guia de Uso e Exemplos Práticos”

  1. Felipe Esteves

    Muito bom, mas muito bom mesmo Fábio!
    Parabéns pelo post, eu sempre ficava em dúvida sobre como utilizar o importXML, esclareceu tudo!

    Achei um comando legal, que retorna os 100 primeiros resultados de busca no Google:
    =ImportXML(“http://www.google.com/search?q={KEYWORD}&num=100”, “//h3[@class=’r’]/a/@href”)

    Parabéns!

    Responder
  2. Diogo

    Parabéns ótimo post, eu tentei usar esse comando no site de social search 48ers e deu erro.
    Tem alguma dica?
    Abs

    Responder
  3. Daniel Sayon

    Muito legal! Eu não sou programador, mas graças ao Google Docs, eu tenho criado alguns APIs e estou me divertindo bastante. Seria bacana ver mais tutoriais desse tipo por aqui, que tal o próximo ser sobre importação de feeds? Abraço

    Responder
  4. Andre Tavares

    estou tentando de tudo para fazer funcionar para minha planilha, mas não consigo configurar o XPath, veja o exemplo abaixo, preciso colocar na minha planilha o valor de 39,98, mas tento de tudo e vem N/A

    Por favor me ajude

    grato

    andre Tavares

    De:

    R$ 49,90

    Por:

    R$39,98

    Responder

Deixar um comentário

  • (não será publicado)

XHTML: Você pode usar estas tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>