ImportXML – Guia de Uso e Exemplos Práticos

Por Fábio Ricotta


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> </bookstore>

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ãoDescriçõ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ãoResultado
bookstoreSeleciona todos os nós filhos do elemento “bookstore”
/bookstoreSeleciona 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/bookSeleciona todos os elementos “book” que são filhos da “bookstore”
//bookSeleciona todos os elementos “book” no importando onde eles estejam no documento.
bookstore//bookSeleciona todos os elementos “book” que são descendentes do elemento “bookstore”, não importando onde eles estejam dentro do elemento “bookstore”.
//@langSeleciona 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(“https://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(“https://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(“https://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!

LEIA MAIS
Redirecionamento 301 em PHP, ASP, htaccess, Coldfusion e Ruby on Rails

Redirecionamento 301 em PHP, ASP, htaccess, Coldfusion e Ruby on Rails

Você quer saber como configurar o redirecionamento 301 no seu site? Veja como e mantenha sua relevância no Google!

O que é SEO? Como Fazer Seu Site Crescer no Google!

O que é SEO? Como Fazer Seu Site Crescer no Google!

Quer entender o que é SEO? Aprender como esta técnica pode ajudar o seu negócio/website a crescer o número de visitas? Criamos este guia para ajudar você hoje mesmo! CLIQUE e confira os detalhes neste artigo!

Como Fazer o Google Encontrar o Seu Site?

Como Fazer o Google Encontrar o Seu Site?

O objetivo do Google é mesmo encontrar todo o conteúdo disponível na Internet, mas você precisa dar uma ajudinha. Veja como!

Comentários
  1. 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!

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

  3. Cara gostei da dica, vou utilizar aqui, tava lendo atras de XML e tirei minhas dúvidas aqui.

    []’s

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

  5. Muito interessante essas dicas, Fábio, valeu!

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

Deixe seu comentário abaixo