Web scraping com Power BI Desktop: o que você precisa saber

Web scraping é a técnica computacional que permite extrair informações dos websites. Este processo de busca de dados da internet certamente é uma das atividades que um cientista de dados precisar realizar, já que atualmente a maior parte dos dados estão na web. O processo basicamente consiste na busca de dados não estruturados das páginas web, normalmente em formato HTML, e a transformação destes dados em estruturados, possibilitando a criação de relatórios com maior facilidade.

São bons exemplos de aplicações de web scraping buscas de ofertas em sites de comércio eletrônico, monitoramento de palavras mais pesquisadas em mecanismos de busca, consultas às redes sociais para identificar a reputação da empresa, entre outras.

Existem diversas ferramentas especializadas em web scraping, mas neste post vou comentar um pouco sobre conceitos básicos da funcionalidade de web scraping em uma ferramenta que, além da captura dos dados, permite também realizar a limpeza e a organização destes dados; gerar modelos lógicos relacionando estes dados; e, ainda, a criação de relatórios e dashboards interativos: o Power BI Desktop!

Seguem abaixo algumas dicas úteis para buscar dados da web utilizando o Power BI Desktop:

O básico

Se você nunca utilizou o Power BI Desktop para capturar dados da web, recomendo começar por este tutorial: Tutorial: Importing and analyzing data from a Web Page using Power BI Desktop . O Power BI Desktop possui diversas funcionalidades disponíveis que permitem rapidamente buscar os dados e organizá-los em um formato ideal.

Utilize funções para percorrer várias páginas

Buscar dados de uma única URL é útil mas pode não ser suficiente, dependendo da quantidade de dados que precisamos. Para isso o Power BI Desktop dá a possibilidade de criarmos funções, que permitem percorrer mais de uma página tendo como base um diretório raiz. Ou seja, com base em uma URL principal, podemos retornar dados de várias páginas que são subdiretórios desta URL.  Estes exemplos de como buscar dados de medalhas nas Olimpíadas e da bilheteria dos filmes explicam detalhadamente o uso de funções para percorrer múltiplas páginas web.

pbidesktop_function

Consulta utilizando função no Power BI Desktop

 

Opção de timeout

Conforme aumentamos a complexidade da nossa captura dos dados, especialmente percorrendo várias páginas, e dependendo da velocidade da conexão, pode acontecer o que chamamos de “timeout”, ou seja, foi atingido o tempo limite de conexão. No Power BI Desktop, em alguns minutos de busca isso já acontece. Mas como então podemos aumentar este tempo?

Para isso temos que adicionar um comando de timeout com a opção duration após a URL chamada pela função Web.Contents(), modificando a query na linguagem “M” que é gerada (que pode ser encontrada na opção “Editor Avançado”). Abaixo um exemplo em que estamos definindo o tempo de timeout como 5 horas:

Web.Contents(“http://bing.com/“, [Timeout=#duration(0,5,0,0)])

Atualização dos dados

Um recurso importante e muito útil no Power BI Desktop é a possibilidade de atualização dos dados. É comum para quem quer utilizar dados da web sempre procurar alguma opção nos sites para exportar os dados para o formato CSV ou algo do tipo. Mas e se estes dados sofrerem inclusões ou modificações?

Visando manter sempre os dados atualizados, o Power BI Desktop cria consultas às páginas web, e assim podemos estar buscando os dados mais recentes sempre que quisermos clicando no botão “Atualizar”.

pbidesktop_atualizar

Botão “Atualizar” no Power BI Desktop

 

Podemos configurar também quais consultas são estáticas, ou seja, que não precisam ser atualizadas já que os dados não sofrerão alterações. Assim, ao clicar no botão “Atualizar”, todas as consultas serão atualizadas, exceto aquelas que estiverem com a opção “Incluir na atualização do Relatório” desmarcada.

pbidesktop_carregamento

Opção “Incluir Na Atualização do Relatório” desmarcada

 

Também é possível atualizar cada uma das consultas individualmente, clicando com botão direito nela e clicando em “Atualizar dados”.

pbidesktop_atualizarconsulta

Opção “Atualizar Dados” de apenas uma consulta

 

É importante explicar o funcionamento do Power BI Desktop para as atualizações. Ao enviar o comando para atualizar os dados, na prática o processo que ocorre é a exclusão dos dados antigos e a inclusão dos novos, ou seja, não é feita uma atualização incremental. Caso ocorra alguma falha na atualização, os dados serão perdidos. Por isso, é importante testar o funcionamento das consultas para garantir que tudo funcione corretamente.

Inclusive existe uma ideia com bastante votos no site Power BI Ideas solicitando uma modificação nesta funcionalidade de atualização: Incremental Data Loads .

Lembrando que o Power Query para Excel também possui estes mesmos recursos para tarefas de web scraping.

Referências:

Web scraping

What are examples of how real businesses use web scraping?

Power Query HTTP timeout setting

Sugestão de leitura relacionada:

Power BI Desktop Web Queries to Screen Scrape Data from Websites

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s