Certamente você já utilizou o Web Scraping em algum momento de sua vida, seja na acadêmica ou profissional, você precisou das informações contidas em uma tabela ou algum texto dentro de um site, certo? Mas, já fez Web Scraping no Power BI?

Neste post ensinaremos a trabalhar com Web Scraping no Power BI de uma forma simples e resolvendo alguns possíveis problemas que encontrará no caminho.

Sabia que de uma certa forma, você já estava praticando o Web Scraping? A maneira que encontrávamos de fazer isso era o bom e velho Ctrl C + Ctrl V para adquirir estas informações das tabelas de um site.

Hoje, com a necessidade de agregar mais informações contidas em sites, o Web Scraping – Raspagem de Página da Web (em tradução livre) – se tornou uma atividade bem utilizada para formação ou complementação de seu conjunto de dados para serem catalogados e analisados posteriormente. Um exemplo é a ferramenta SEO (Search Engine Optimization) do Google. Através do Googlebot, não apenas o Google recolhe as informações contidas nos sites, como também o SEO os ranqueia de acordo com sua relevância, retornando os resultados de busca de forma mais eficiente e assertiva para o usuário.

Uma maneira fácil de realizar o Web Scraping no Power BI é estabelecer uma conexão direta com a site e realizar o tratamento dos dados através do Power Query, mas caso a plataforma que você for utilizar possuir um API (Application Programming Interface), você pode consultar o artigo que temos aqui no site, onde falamos sobre conectores de API no Power BI.

Web Scraping com Power BI – Extração dos dados

Primeiramente, você precisa acessar a URL de interesse. Para exemplificar o conteúdo deste post,  utilizaremos a url das informações de IPCA do  IBGE. Utilizaremos os indicadores do IPCA referentes ao período de Março-2020. Nesta URL, é interessante notar que a extensão final é modificada de acordo com o período consultado.

 

Estrutura da URL

 

Após temos o endereço da URL das informações que buscamos, partimos para Web Scraping no Power BI. No programa, iniciamos a conexão a uma fonte de dados web (Obter dados -> Web).

 

Extraindo de Dados da Web

 

Para extrair as informações da web, podemos utilizar 2 modos. O 1º Modo utiliza tabelas já estruturadas do próprio site ou que as tabelas sugeridas pelos algoritmos do Power BI , enquanto que o  2º Modo nenhuma tabela estruturada nativa do site ou as tabelas sugeridas pelos algoritmos do Power BI te atendendem, deste modo, utilizaremos a opção Adicionar a Tabela Usando Exemplos.

 

Tipos de Extração de Dados

 

No 2º modo será habilitado uma tabela em branco e o site para você inserir as informações nas colunas. Posteriomente, selecione as informações através das caixas de opções disponibilizadas quando você começa a buscar os dados de interesse.

De uma forma bem simples, estes elementos disponibilizados no momento de preenchimento da célula são utilizados para “calibrar” o padrão das informações que serão retiradas do site. É importante observar que caso haja mais informações a serem captadas que o autopreenchimento (letras em cinza claro) sugeriu, será necessário que você preencha mais células em branco para que o Power BI entenda que precisa recolher mais informações. Depois, aperte OK.

*Obs: No exemplo de Web Scraping no Power BI abaixo, não precisamos nos preocupar em inserir a informação de data em uma coluna, pois as informações necessárias já estão contida na URL da página (explicarei logo em seguida).  

 

Extração de Dados da Web através de uma Tabela de Exemplo no Power BI

 

Consulta em Múltiplas Páginas no Power BI

Após transformar as colunas com os Tipos de Dados corretos, podemos estender a consulta para outros períodos de interesse. Se lembra que anteriormente, no começo do artigo, indico a variação da URL de acordo com os períodos consultados (Mês-Ano), certo? Pois bem, está aí o padrão desta URL.

Através do Power BI podemos utilizar uma variável para requisitar informações de outros períodos inserindo uma variável na URL (no lugar do padrão observado) e transformar a Tabela 9 em uma função de consulta. Essa é uma das grandes vantagens do Web Scraping no Power BI.

Inicialmente ,no Editor avançado, substituiremos a extensão padronizada no final da URL marco-2020 por uma variável (“&período&”). Em seguida, inserimos uma linha de código antes da expressão let, que nos retornará o resultado da consulta em forma de tabela “(período as any) as table => ”, conforme imagem abaixo. As modificações realizadas irão transformar a tabela em uma função de consulta.

Aplicando Variável em Consulta Avançada

 

Em seguida, construiremos uma tabela auxiliar com os períodos a serem consultados (mês-ano) no Web Scraping.

Pode ser feito de 2 modos:

1º Modo) Importando uma tabela do Excel (.csv ou .xlsx) ou em Texto (.txt) com os períodos que serão consultados.

2º Modo) Cria-se uma Tabela auxiliar dentro do Power BI através do Power Query: “Página Inicial” (1) -> “Inserir Dados” (2) -> OK.

 

Tabela de Retorno

 

Posterior à etapa da criação da tabela de data (veja figura abaixo), clique na aba “Adicionar Coluna” (1), selecione a opção “Invocar Função Personalizada” (2) e aplique a função criada na coluna com os períodos. Assim que aplicada, a função retornará linhas que conterão tabelas com os novos períodos, baseado na tabela tratada  criada.

 

Pesquisa em Páginas Diferentes Web Scraping

 

Na figura abaixo, após a coluna ser expandida (1), pode-se deselecionar o uso do nome da coluna original como prefixo (2), assim, suas colunas manterão os nomes padronizada.

 

Expansão dos Dados Extraídos

 

Após expandir a coluna, temos que realizar apenas um pequeno ajuste para que você consiga  transformar a coluna de períodos em uma coluna no TIPO DATA.  Para isso, é necessário a corrção ortográfica da palavra MARCO para MARÇO, só assim o Power BI reconhecerá que se trata de uma data. Finalmente, selecione “Transformar” (1) e depois “Substitui Valores” (2), fazendo a correção ortográfica.

 

Correção de Valores

 

Pronto, cumprimos as principais etapas de Web Scraping no Power BI. Agora é só realizar o tratamento de dados e aplicar as mudanças realizadas.

 

Possíveis erros durante o Web Scraping

Durante o processo de Web Scraping no Power BI, é provável que você encontre este erro ao tentar “Fechar e Aplicar”.

Failed to save modifications to the server. Error returned: 'Expression in partition 'n/a' in table 'n/a' references an unknown entity.

Deste modo, será necessário desabilitar a função de “Armazenar os conjuntos de dados usando o formato de metadados aprimorados” (1), pois esta função dos Recursos de Visualização do Power BI não é compatível com os seguintes recursos e conectores:

1. Scripts do Python 2. Conectores personalizados
3. Azure DevOps Server 4. Conector do BI
5. Denodo 6. Dremio
7. Exasol 8. Indexima
9. IRIS 10. Jethro ODBC
11. Kyligence Enterprise 12. Mark Logic ODBC
13. Qubole Presto 14. Team Desk
15. Expressões M que contêm determinadas combinações de caracteres, como “\n” em nomes de colunas 16. Ao usar conjuntos de dados com o recurso metadados aprimorados de conjunto de dados habilitado, as fontes de dados de SSO (logon único) não podem ser configuradas no serviço do Power BI

 

Arquivo -> Opções e Configurações -> Opções -> Recursos de Visualização

 

Possíveis Problemas

 

Viu como é melhor fazer o Web Scraping pelo Power BI? Como resultado, ele ajuda muito na economia de tempo na extração de dados da web de forma constante e padronizada.

Este post tem um nível avançado e caso não entenda algum ponto dele entre em contato conosco pelos comentários abaixo ou pelo nosso e-mail falecom@uaismart.com.

Compartilhe o artigo pelas redes sociais para mostrar aos seus amigos como se trabalha de verdade com Web Scraping.

Compartilhe