Hacking googlenilha+Wikipédia

Vamos supor que, por falta de sexo, você se divirta levantando dados sobre municípios brasileiros.

Umas das melhores fontes, depois do IBGE e Associação dos Municípios, seria a Wikipédia. Mas você vai clicar em 5560 páginas? Não! Existe uma maneira mais complicada e divertida de fazer isto.

Primeiro abra uma googlenilha e obtenha, com o seguinte comando, uma lista de municípios (no caso, do Rio Grande do Sul que começam com a letra A):

=importHtml("http://pt.wikipedia.org/wiki/Anexo:Lista_de_municípios_do_Rio_Grande_do_Sul";"list";1)

Você pode usar os índices de listas de cidades começando com a letra A (1) até a letra Z (26).

Em outra folha da planilha, obtenha um dado da primeira cidade da lista com este comando:

=importXML(CONCATENATE("http://pt.wikipedia.org/wiki/";Página1!A1);"//table[@class='infobox']/tr[22]/td")

O CONCATENATE monta o endereço URL da página, na Wikipédia, do primeiro município da lista, na folha Página1, célula A1.

O importXML pega a página no endereço e extrai os dados conforme o XPath (da célula <td> da 22ª linha <tr> — no caso, é a população — da tabela <table> de classe CSS “infobox”  — no caso, é a ficha do município — da primeira cidade da lista).

Puxe a célula para baixo pelo cantinho para replicá-la para todas as cidades da lista.

Na Wikipédia, espera-se que todos os dados correspondentes estejam na mesma posição da tabela, porque são gerados por “predefinições”.

Cotações

Um bom uso desta função, por exemplo, pode ser a recuperação de cotações de ações da Bovespa. Um investidor pode ter numa só planilha toda sua carteira de ações com fórmulas como esta:

=importXML("http://www.bmfbovespa.com.br/Pregao-Online/ExecutaAcaoAjax.asp?CodigoPapel=VALE3";"//Papel/@ultimo")

Troque “vale3” por “petr3” ou qualquer outro código de ações. Em vez de “ultimo”, podem ser filtrados os parâmetros dentro do nó <Papel Codigo=”VALE3″ Nome=”VALE ON N1″ Ibovespa=”#” Data=”19/11/2009 19:29:47″ Abertura=”48,05″ Minimo=”47,75″ Maximo=”48,80″ Medio=”48,27″ Ultimo=”48,80″ Oscilacao=”0,49″/>. Mas devem ser colocados todos em minúscula.

[Atualização 2012-01-12]

Uma outra fórmula para pegar a cotação de uma ação é esta, da PETR4:

=ImportXML("http://www.bmfbovespa.com.br/Pregao-online/ExecutaAcaoCotRapXSL.asp?gstrCA=&txtCodigo=PETR4&intIdiomaXsl=0";"//table[@id='tbCotacoesInfo']/tr[1]/td[2]")

Para ajudar a descobrir o xPath correto dos dados, uso o plugin Firefox Xpath Generator.

Limitações

  1. Por enquanto, as googlenilhas só aceitam 50 fórmulas importXML por folha.
  2. Dá um trabalho do Cão. Isto é só um exemplo didático de como extrair dados da rede pelo Google Planilha. Além da Wikipédia, dá pra usar arquivos texto e CSV. Por exemplo, arquivos de cotações atualizadas frequentemente.

Bibliografia

  1. XPath
  2. XPath Tutorial
  3. XPath Generator
  4. Google. Ajuda do Docs. Funções: Que funções posso usar para obter dados externos?
  5. Wikipedista hardcore Leonardo Stabile
  6. Dados de cabeçalho HTTP obtidos com o plugin Live HTTP Headers para browser Firefox.

About José Antonio Meira da Rocha

Jornalista, professor das áreas de Editoração e de Mídias Digitais na Universidade Federal de Santa Maria, campus cidade de Frederico Westphalen, Rio Grande do Sul, Brasil. Doutor em Design pelo Programa de Pós-Graduação em Design (PGDesign)/Universidade Federal do Rio Grande do Sul (UFRGS), Porto Alegre, Brasil, 2023. Mestre em Mídias pela UNISINOS, São Leopoldo, RS, Brasil, 2003. Especialista em Informática na Educação, Unisinos, 1976.